Flask中session如何使用
发表于:2024-11-11 作者:千家信息网编辑
千家信息网最后更新 2024年11月11日,本篇文章为大家展示了Flask中session如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Flask-session用法简介flask-sessio
千家信息网最后更新 2024年11月11日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安全错误
数据库的锁怎样保障安全
上海猴游互联网科技有限公司
个人软件开发税费
不使用代理服务器上网
上海软洋互联网科技有限公司
南通网络安全教育平台
学软件开发哪里去
mysql不同数据库复制
图腾服务器屏蔽机柜
徐州阑谭网络技术有限公司
软件开发专科
网络安全信息通报回函
频繁计算需要存到数据库吗
大专生关于网络技术有啥专业
计算机三级数据库软件下载
绩效管理软件开发
国外地名数据库怎么下载
电脑网易版mc怎么进手机服务器
网络安全的隐私保护
筑和网络技术靠谱吗
vps设置代理服务器
cad2015数据库在哪
学软件开发哪里去
徐州阑谭网络技术有限公司
遵义游戏软件开发有限公司
十四五网络安全和信息化建设规划
房地产数据库有哪些
uc浏览器网络代理服务器
泰州盛朋网络技术有限公司招聘
数据库触发器判断语句
工程分包管理软件开发方案