欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

【flask】session的操作

程序员文章站 2024-03-20 19:56:16
...

1,引入模块。

from flask import Flask,session
import os
from datetime import timedelta

2,随机生成24位的SECRET_KEY,因为flask要在客户端对cookie加密,所以要使用SECRET_KEY,使得对隐私数据实现加密。

app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)

3,设置session的值,就像对字典的操作,是一样的。

session['username'] = 'xinjing2018'

4,获取session里面的值。通过使用get方法,比[]的方法好。

session['username']
session.get('username')

5,删除特定的session的值

session.pop('username')

6,清除session的值

session.clear()

7,设置过期时间为7天如下代码。如果都不设置的话,默认的过期时间是关闭浏览器就自动清除了cookie数据。如果只写session.permanent = True,那么过期时间默认是31天。

app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7)
session.permanent = True

8,完整代码,通过访问对应的路由就可以查看对应的效果。

from flask import Flask,session
import os
from datetime import timedelta

app = Flask(__name__)
app.config['SECRET_KEY'] = os.urandom(24)
app.config['PERMANENT_SESSION_LIFETIME'] = timedelta(days=7)

@app.route('/')
def index():
    session['username'] = 'xinjing2018'
    session.permanent = True
    return 'Hello Flask'

@app.route('/get/')
def get():
    return session.get('username')

@app.route('/dels/')
def dels():
    print(session.get('username'))
    session.pop('username')
    print(session.get('username'))
    return 'dels done'

@app.route('/clear/')
def clear():
    print(session.get('username'))
    session.clear()
    print(session.get('username'))
    return 'clear done'

if __name__ == "__main__":
    app.run(debug=True)