Flask-会话技术
from flask import request, session
Flask中的session、request是全局对象
Cookie
设置cookie:
response.set_cookies(key,value[,max_age=None,exprise=None])
max_age:整数,指定cookie过期时间
expries:整数,指定过期时间,可以指定一个具体日期时间
max_age和expries两个选一个指定
获取cookie:
request.cookies.get(key)
删除cookie:
response.delete_cookie(key)
Session
设置session session['key'] = 'value'
获取session session.get(key, defualt=None) 根据键获取会话的值
删除session session.pop(key) 删除某一值 session.clear() 清除所有
设置SECRET_KEY
# __init__.py : 初始化文件,创建Flask应用
import datetime
from flask import Flask
from .views import blue
def create_app():
app = Flask(__name__)
# 注册蓝图
app.register_blueprint(blue)
# session 配置
print(app.config) # flask配置信息
'''
<Config {
'ENV': 'production',
'DEBUG': False, 'TESTING': False, 'PROPAGATE_EXCEPTIONS': None,
'SECRET_KEY': None,
'PERMANENT_SESSION_LIFETIME': datetime.timedelta(days=31),
'USE_X_SENDFILE': False, 'SERVER_NAME': None, 'APPLICATION_ROOT': '/',
'SESSION_COOKIE_NAME': 'session',
'SESSION_COOKIE_DOMAIN': None,
'SESSION_COOKIE_PATH': None,
'SESSION_COOKIE_HTTPONLY': True,
'SESSION_COOKIE_SECURE': False,
'SESSION_COOKIE_SAMESITE': None,
'SESSION_REFRESH_EACH_REQUEST': True,
'MAX_CONTENT_LENGTH': None,
'SEND_FILE_MAX_AGE_DEFAULT': None,
'TRAP_BAD_REQUEST_ERRORS': None, 'TRAP_HTTP_EXCEPTIONS': False,
'EXPLAIN_TEMPLATE_LOADING': False, 'PREFERRED_URL_SCHEME': 'http',
'JSON_AS_ASCII': None, 'JSON_SORT_KEYS': None, 'JSONIFY_PRETTYPRINT_REGULAR': None,
'JSONIFY_MIMETYPE': None, 'TEMPLATES_AUTO_RELOAD': None, 'MAX_COOKIE_SIZE': 4093}>
'''
# 当 app没有设置secret_key时,views中设置了session,就会报如下错误
# RuntimeError: The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret.
# 因此需要设置一下secret_key
app.config['SECRET_KEY'] = 'abc123'
# 设置了secret_key后,session有key-value时,cookie中就有一个key=session(对应以上配置中的SESSION_COOKIE_NAME)的键值对
# 对应的value是使用了secret_key加密的字符串(使用AES DES等对称加密方式,加密、解密都使用同一字符串)
# 设置session过期时间
app.config['PERMANENT_SESSION_LIFETIME'] = datetime.timedelta(days=8)
return app
合集:
Python全栈(Flask)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库