Flask中session如何使用
发表于:2024-11-13 作者:千家信息网编辑
千家信息网最后更新 2024年11月13日,本篇文章为大家展示了Flask中session如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Flask-session用法简介flask-sessio
千家信息网最后更新 2024年11月13日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安全错误
数据库的锁怎样保障安全
html5 web服务器
吴江手机软件开发
软件开发岗位潍柴歌尔哪个好
重庆粟子互联网科技有限公司
大学生软件开发跳槽
天津运营网络技术价格
虚拟机里的数据库重启后报错
点击按钮查询一个表数据库
肥东网络技术服务优势
网络安全与执法有哪些好的学校
embl核酸数据库使用举例
那个软件开发公司好
ctf江西网络安全大赛
天财商龙连接数据库失败
数据库系统原理+带书签目录
桓台办公系统oa软件开发公司
服务器合同模板
qt开发的数据库管理系统
如何在数据库中查询数据库
软件开发项目管理怎么做
网络安全周微网文
NCBI数据库网络图
数据库没来得及更改第一次
广州巨达网络技术
华为服务器管理口是那个
网络安全协议分析
国家网络安全管理委员会官网
安全的网络服务器
上海企业软件开发代码
网络安全宣传周消防