【Flask中内置的Session】 -- 2019-08-11 18:42:18

原文: http://106.13.73.98/__/111/

Flask中的Session非常的奇怪,它会将你的SessionID存放到客户端的Cookie中,使用起来也非常的奇怪。

Flask中使用Session,需要先设置secret_key

from flask import Flask

app = Flask(__name__)
app.secret_key = 'encrypted'
# secret_key是用来加密字符串的
# 如果在实例化的app中没有secret_key,那么开启session一定会抛异常

Flask中要这样使用Session

from flask import Flask, request, render_template, redirect, session, url_for

app = Flask(__name__)
app.secret_key = 'encrypted'  # 设置secret_key

userinfo = {'username': 'zyk', 'password': '123'}  # 模拟数据库中的数据


@app.route('/home')
def home():
    if session.get('user_session'):  # 获取存到浏览器的sessionID
        print(session)
        return 'This is home page.'
    return redirect(url_for('login'))


@app.route('/login', methods=['GET', 'POST'])
def login():
    if request.method == 'POST':
        username = request.form.get('username')
        password = request.form.get('password')
        if username == userinfo.get('username') and password == userinfo.get('password'):
            session['user_session'] = username  # 存入session  ⚠️⚠️
            return redirect(url_for('home'))
        return render_template('test08.html', msg="用户名或密码错误")
    return render_template('test08.html')


if __name__ == '__main__':
    app.run('127.0.0.1', 5000, debug=True)

session['user_session'] = username 这一步骤将存储Session.
*
Flask中要这样验证Session**

cookies中存储的sessionID是通过secret_key加密后的key,通过这个key从Flask程序的内存中找到用户对应的session信息,完整步骤见上面的代码.

from flask import Flask, redirect, session, url_for

@app.route('/home')
def home():
    if session.get('user_session'):  # 获取存到浏览器的sessionID
        print(session)
        return 'This is home page.'
    return redirect(url_for('login'))

原文: http://106.13.73.98/__/111/

猜你喜欢

转载自www.cnblogs.com/gqy02/p/11336046.html