Flask--session存储机制

flask中要想实现session存储:首先设置一个密钥及过期时间

from datetime import timedelta

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

app = Flask(__name__)

#设置我们的秘钥 用于对sessionid进行加密

app.secret_key="lH4WHi5amT0ZqykHvLofllRJu3UN1uzmeUN0z2IiacjDUb5TLU3ZTtUP5VJqgkMY"

#设置session的过期时间

app.permanent_session_lifetime = timedelta(days=7)


且flask设置session时通过一个session类实现的, 这个类的数据结构是字典

@app.route('/')

def index():

    #访问首页时 如果是登录状态 则 提示欢迎信息

    username = session.get("username")

    if username:

        #删除session的数据

        return "欢迎回来%s"%username

    #如果没有登录 跳转到登录页面

    return redirect(url_for("login"))

#登录的路由

@app.route('/login', methods=['GET', 'POST'])

def login():

    if request.method == 'GET':

        with open("login.html") as f:

            login_html_content = f.read()

            return login_html_content

    #Post处理

    username = request.form.get("username")

    password = request.form.get("password")

    #验证登录信息

    if username == 'zx' and password=="123":

        print("登录成功")

        #将我们的状态数据保存到session

        session["username"] = username

        #设置session是否持久化() 默认为false(会话结束自动删除)

        session.permanent = True

        # #删除字典数据

        # session.pop("username")

        return redirect(url_for("index"))

    else:

        return '登录失败'

if __name__ == '__main__':

    app.run()


大家可以把代码复制粘贴运行一下

你可能感兴趣的:(Flask--session存储机制)