Flask中session如何使用
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇文章为大家展示了Flask中session如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Flask-session用法简介flask-sessio
千家信息网最后更新 2025年12月02日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安全错误
数据库的锁怎样保障安全
用电和网络安全手抄报
杭州湾区腾讯互联网科技大厦
网络技术专业研究生院排名
网络安全及攻防
高中生网络安全黑板报模板
数据库树图
网络安全年度回顾报告
玄中记服务器变灰
北京软件开发外包公司
邵阳市网络安全宣传周活动
可诺心思网络技术有限公司
学院网络安全事件应急预案
联想服务器主机编号
末日之刃服务器人口普查2022
服务器内存能用台式机主板吗
我的世界能不能把地图变成服务器
安徽水果蔬菜配送软件开发
cisco网络技术论文
服务器管理平台好吗
网络安全ai设计app
合肥棋牌软件开发公司
原神有服务器排名吗
软件开发阶段的测试方法
南京常见软件开发售后服务
软件开发的就业前景分析
维护网络安全手抄报的短语
广州优万网络技术张茹娟
幼儿 网络安全活动方案
小程序云数据库后台管理页面
滨湖区加工软件开发配置