Flask中session如何使用
发表于:2025-02-14 作者:千家信息网编辑
千家信息网最后更新 2025年02月14日,本篇文章为大家展示了Flask中session如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Flask-session用法简介flask-sessio
千家信息网最后更新 2025年02月14日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安全错误
数据库的锁怎样保障安全
打游戏服务器选广州还是上海
系统与关系数据库
网络安全法监测防御
阿里云建立数据库服务器
江西pdu服务器电源厂家电话
北京邮电大学 网络安全学院
网络安全法高分答题
服务器显卡着么装
私人游戏服务器
yii查询数据库
索尼电视访问网络服务器
心理健康教案网络安全
网络技术公司业务范围
杭州高游网络技术有限公司
网络安全学院招生
数据库表里主键怎么看
知乎配方研究大数据库
南昌青山湖区网络安全宣传进网吧
win7电脑网络安全设置
软件开发云协同平台
挂端的服务器
数据库错误号17410
贵州软件开发参考价格
育碧服务器怎么登陆不上网
我国网络安全法有哪些亮点
天津通讯软件开发创意
数据库提取多个工作表
高仿真图 软件开发
网络安全性的不足之处
网络安全技术论文选题依据