[ 작업환경 ]
Centos 7.7
Flask 1.1
Python 3.7
로그인 시 접속한 기기의 IP 정보를 저장하는 기능과
로그인된 상태에서 login 페이지 접근시 redirect하는 기능 추가
1. 접속한 기기의 IP 정보 저장 함수 생성
# vim app001/models.py
# ...
def update_fromip(fromip, id):
cursor = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
cursor.execute('UPDATE `pythondb`.`accounts` SET `fromip`=%s WHERE `id`=%s', (fromip, str(id)))
mysql.connection.commit()
2. 접속 기기의 IP 받아 저장하기
로그인 성공시, User.update_fromip 함수를 활용해 ip 정보를 DB에 저장
# vim app001/routes.py
# ...
# http://host:5005/login/ - this will be the login page, we need to use both GET and POST requests
@app.route('/login/', methods=['GET', 'POST'])
def login():
# ...
if account:
session['loggedin'] = True
session['id'] = account['id']
session['username'] = account['username']
#return 'Logged in successfully!'
fromip = request.environ.get('HTTP_X_REAL_IP', request.remote_addr)
User.update_fromip(fromip, account['id'])
return redirect(url_for('home'))
else:
msg = 'Incorrect username/password!'
# Show the login form with message (if any)
return render_template('index.html', msg=msg)
참고 링크 : https://growingsaja.tistory.com/319
3. 로그인된 상태일 경우 login페이지 접근시 home으로 리다이렉트 기능 추가
# vim app001/routes.py
# ...
# ...
else:
msg = 'Incorrect username/password!'
if 'loggedin' in session:
return redirect(url_for('home'))
# Show the login form with message (if any)
return render_template('index.html', msg=msg)
'Development > Flask with Python' 카테고리의 다른 글
[Flask1.1][Mysql] 실습 - 8 : 비밀번호 암호화하기 및 비밀번호check with bcrypt (0) | 2020.01.17 |
---|---|
[Flask1.1][Mysql] 실습 - 7 : 회원가입 기능 구현하기 (0) | 2020.01.16 |
[Flask1.1][Mysql] 실습 - 5 : routes와 models 파일 별도로 만들기 (0) | 2020.01.06 |
[Flask1.1][Mysql] 실습 - 4 : 서버 Port 변경하기 (0) | 2020.01.06 |
[Flask1.1] client의 IP 정보 가져오기 (0) | 2020.01.05 |