Flask中session如何使用
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇文章为大家展示了Flask中session如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Flask-session用法简介flask-sessio
千家信息网最后更新 2026年11月01日Flask中session如何使用
本篇文章为大家展示了Flask中session如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Flask-session用法
简介
flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方,如:
redis:保存数据的一种工具,五大类型。非关系型数据库
memcached
filesystem
mongodb
sqlalchmey:那数据存到数据库表里面
安装
pip3 install flask-session
视频讲解
存储方式
redis
#!/usr/bin/env python# -*- coding:utf-8 -import redisfrom flask import Flask, sessionfrom flask_session import Sessionapp = Flask(__name__)app.debug = Trueapp.secret_key = 'xxxx'app.config['SESSION_TYPE'] = 'redis' # session类型为redisapp.config['SESSION_PERMANENT'] = False # 如果设置为True,则关闭浏览器session就失效。app.config['SESSION_USE_SIGNER'] = False # 是否对发送到浏览器上session的cookie值进行加密app.config['SESSION_KEY_PREFIX'] = 'session:' # 保存到session中的值的前缀app.config['SESSION_REDIS'] = redis.Redis(host='127.0.0.1', port='6379', password='123123') # 用于连接redis的配置Session(app)@app.route('/index')def index(): session['k1'] = 'v1' return 'xx'if __name__ == '__main__': app.run()memcached
#!/usr/bin/env python# -*- coding:utf-8 -import redisfrom flask import Flask, sessionfrom flask_session import Sessionimport memcacheapp = Flask(__name__)app.debug = Trueapp.secret_key = 'xxxx'app.config['SESSION_TYPE'] = 'memcached' # session类型为redisapp.config['SESSION_PERMANENT'] = True # 如果设置为True,则关闭浏览器session就失效。app.config['SESSION_USE_SIGNER'] = False # 是否对发送到浏览器上session的cookie值进行加密app.config['SESSION_KEY_PREFIX'] = 'session:' # 保存到session中的值的前缀app.config['SESSION_MEMCACHED'] = memcache.Client(['10.211.55.4:12000'])Session(app)@app.route('/index')def index(): session['k1'] = 'v1' return 'xx'if __name__ == '__main__': app.run()filesystem
#!/usr/bin/env python# -*- coding:utf-8 -import redisfrom flask import Flask, sessionfrom flask_session import Sessionapp = Flask(__name__)app.debug = Trueapp.secret_key = 'xxxx'app.config['SESSION_TYPE'] = 'filesystem' # session类型为redisapp.config[ 'SESSION_FILE_DIR'] = '/Users/wupeiqi/PycharmProjects/grocery/96.Flask新课程/组件/2.flask-session' # session类型为redisapp.config['SESSION_FILE_THRESHOLD'] = 500 # 存储session的个数如果大于这个值时,就要开始进行删除了app.config['SESSION_FILE_MODE'] = 384 # 文件权限类型app.config['SESSION_PERMANENT'] = True # 如果设置为True,则关闭浏览器session就失效。app.config['SESSION_USE_SIGNER'] = False # 是否对发送到浏览器上session的cookie值进行加密app.config['SESSION_KEY_PREFIX'] = 'session:' # 保存到session中的值的前缀Session(app)@app.route('/index')def index(): session['k1'] = 'v1' session['k2'] = 'v1' return 'xx'if __name__ == '__main__': app.run()mongodb 视频讲解
#!/usr/bin/env python# -*- coding:utf-8 -import redisfrom flask import Flask, sessionfrom flask_session import Sessionimport pymongoapp = Flask(__name__)app.debug = Trueapp.secret_key = 'xxxx'app.config['SESSION_TYPE'] = 'mongodb' # session类型为redisapp.config['SESSION_MONGODB'] = pymongo.MongoClient()app.config['SESSION_MONGODB_DB'] = 'mongo的db名称(数据库名称)'app.config['SESSION_MONGODB_COLLECT'] = 'mongo的collect名称(表名称)'app.config['SESSION_PERMANENT'] = True # 如果设置为True,则关闭浏览器session就失效。app.config['SESSION_USE_SIGNER'] = False # 是否对发送到浏览器上session的cookie值进行加密app.config['SESSION_KEY_PREFIX'] = 'session:' # 保存到session中的值的前缀Session(app)@app.route('/index')def index(): session['k1'] = 'v1' session['k2'] = 'v1' return 'xx'if __name__ == '__main__': app.run()mongodb操作简单示例:
#!/usr/bin/env python# -*- coding:utf-8 -*-from pymongo import MongoClient# 创建链接conn = MongoClient('47.93.4.198', 27017)# 选择数据库db = conn['db1']# 选择表posts = db['posts']post_data = { 'name': 'alex', 'age': 18}# 表中插入数据# result = posts.insert_one(post_data)# 获取一条数据# row = posts.find_one()# print(row)# # 获取多条数据# rows = posts.find()# for row in rows:# print(row)# 删除多条数据# rows = posts.delete_many(filter={})# print(rows)# 更新多条数据# posts.update({}, {'name': 'wupeiqi'})sqlalchemy
#!/usr/bin/env python# -*- coding:utf-8 -import redisfrom flask import Flask, sessionfrom flask_session import Session as FSessionfrom flask_sqlalchemy import SQLAlchemyapp = Flask(__name__)app.debug = Trueapp.secret_key = 'xxxx'# 设置数据库链接app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123@127.0.0.1:3306/fssa?charset=utf8'app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True# 实例化SQLAlchemydb = SQLAlchemy(app)app.config['SESSION_TYPE'] = 'sqlalchemy' # session类型为sqlalchemyapp.config['SESSION_SQLALCHEMY'] = db # SQLAlchemy对象app.config['SESSION_SQLALCHEMY_TABLE'] = 'session' # session要保存的表名称app.config['SESSION_PERMANENT'] = True # 如果设置为True,则关闭浏览器session就失效。app.config['SESSION_USE_SIGNER'] = False # 是否对发送到浏览器上session的cookie值进行加密app.config['SESSION_KEY_PREFIX'] = 'session:' # 保存到session中的值的前缀FSession(app)@app.route('/index')def index(): session['k1'] = 'v1' session['k2'] = 'v1' return 'xx'if __name__ == '__main__': app.run()PS: 在写好代码后,不要着急运行,需要先执行进入终端执行一条创建数据库表的命令:
bogon:pro-flask wupeiqi$ python3Python 3.5.1 (v3.5.1:37a07cee5969, Dec 5 2015, 21:12:44)[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwinType "help", "copyright", "credits" or "license" for more information.>>> from app import db>>> db.create_all()>>>
应用场景
如果应用程序比较小,就用原生的加密ccokie 保存session(内置)
如果应用程序比较大,就用redis(flask-session)
上述内容就是Flask中session如何使用,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
数据
浏览器
浏览
类型
数据库
utf-8
加密
前缀
名称
多条
组件
应用
内容
应用程序
技能
知识
程序
视频
链接
存储
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技海报
百单网互联网科技有限公司怎么样
科技互联网企业
期待互联网科技
奇酷互联网科技公司
互联网科技宣传片
重庆科技学院互联网
互联网巨头投资的硬核科技
成都玖崟互联网科技有限公司乐商圈怎么样
南平创想时代互联网科技有限公司
华夏互联网科技业
企晟互联网信息科技有限公司
互联网科技如何创业
深圳无忧互联网科技
信承诺互联网科技有限公司
抖集互联网科技技术咨询
世界互联网科技成果奖
互联网科技职业技能培训学校
黑龙江互联网科技公司
重庆科技产业互联网有哪些
互联网科技媒体
极限挑战互联网科技
互联网科技小额贷款
多迪互联网科技有限公司
卫星互联网科技股票
岳阳华臻互联网科技有限公司
河南住房之家互联网科技
启辰互联网科技
半导体行业属于互联网高科技类吗
银川新华互联网科技学校原画