반응형

플라스크, 로그인/로그아웃 및 세션 처리 예제 코드  

 

플라스크의 session 기능을 이용한 페이지 처리 예제입니다. 

 

# 로그인 세션과 로그아웃 
from flask import Flask, request, render_template, redirect, url_for, session
import dbdb
app = Flask(__name__)
app.secret_key = b'aaa!111/'
# 기본 도메인 주소 접속 처리 
@app.route('/')
def index():
    return '홈페이지'
# 로그인 이용자 확인 처리 
@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'GET':
        return render_template('login.html')
    else:
        id = request.form['id']
        pw = request.form['pw']
        # id와 pw 검사
        if id == 'abc' and pw == '1234':
            session['user'] = id
            return '''<script> alert("안녕하세요~ {}님");
location.href="/form" </script>'''.format(id)
        else:
            return "아이디 또는 패스워드를 확인 하세요."
# 로그아웃 처리하기 (session 제거)
@app.route('/logout')
def logout():
    session.pop('user', None)
    return redirect(url_for('form'))
# 로그인 사용자인지 세션에서 확인하고 처리
@app.route('/form')
def form():
    if 'user' in session:
        return render_template('test.html')
    return redirect(url_for('login'))
# GET, POST 처리 예 
@app.route('/method', methods=['GET', 'POST'])
def method():
    if request.method == 'GET':
        return 'GET 으로 전송이다.'
    else:
        num = request.form["num"]
        name = request.form["name"]
        return 'POST 이다. 학번은: {} 이름은: {}'.format(num, name)
# 실행 모드이면 플라스크 서버 실행 
if __name__ == '__main__':
    app.run(debug=True)

참고: wings2pc.tistory.com/entry/wings2pc.tistory.com/entry/%EC%9B%B9-%EC%95%B1%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D-%ED%8C%8C%EC%9D%B4%EC%8D%AC-%ED%94%8C%EB%9D%BC%EC%8A%A4%ED%81%ACPython-Flask-%EB%A1%9C%EA%B7%B8%EC%9D%B8login-%EC%B2%98%EB%A6%ACsession

 

 

반응형

+ Recent posts