假设,你今天写了一个页面或是储存了一些简单的状态或资讯,call了另外一个API或是跳转到不同页面并且想要保持刚才的资讯或是状态呢?
也许你该考虑看看session。
https://github.com/wilsonsujames/flask_tutorial/blob/main/Flask_with_session/app.py
from flask import Flask, session, redirect, url_for, request,jsonifyimport os app = Flask(__name__)app.secret_key = os.urandom(20)@app.route('/')def index(): session['username'] ='bob' session['weight'] ='60kg' session['height'] ='172cm' return jsonify({'status':'using session success'})@app.route('/getinfo')def getinfo(): print(session) # 这里可以发现session资料为字典型态 username=session.get('username') weight=session.get('weight') height=session.get('height') return jsonify({'username':username,'weight':weight,'height':height})if __name__ == '__main__': app.run(debug=True, port=8591)
执行之后我们到达根路由可以看到回传的json资讯,到达localhost:8591/getinfo可以看见回传了储存于session的资讯,我们也把session印出来了,可以发现session为字典的型态。
假设要去除某个session资讯,我们也可以:
session['xxx'] = False
是的,未来跳转页面时,你可以将特定资讯保留下来,以执行你app的功能了。
注意
请勿将重要资讯,像是会员密码储存于session。另外在生产模式可以将secrect key利用export(linux)、set(windows)来设定还境变数,再利用os.environ.get来获取环境变数的值。
import osSECRET_KEY = os.environ.get("SECRET_KEY")
[day 1] 开场白[day 2] blue_print[day 3] Factory mode[day 4] JWT token[day 5] session[day 6] Jinja[day 7] Post data with Form tag[day 8] ajax with jquery[day 9] request[day 10] 将资料写进DB(pymongo)[day 11] log with mongoDB[day 12] Sql Database[day 13] 档案上传[day 14] 档案下载 及 其他传值方法[day 15] boostrap 4.6[day 16] API[day 17] Docker image化--安装篇[day 18] Docker image化--运行篇[day 19] Nginx[day 20] Docker compose[day 21] Nginx with https[day 22] pythonanywhere 部署[day 23] GCP app engine (介绍)[day 24] GCP app engine (deploy)[day 25] Flask with web cam[day 26] Flask with ML[day 27] Supervisor[day 28] Flask-Mail[day 29] Line Messaging API[day 30] 结语