首页 > 其他分享 >Flask框架 之Flask-session

Flask框架 之Flask-session

时间:2023-04-08 16:56:11浏览次数:34  
标签:session __ 框架 Flask app SESSION config

flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方

一、filesystem

from flask import Flask, session
from flask_session import Session

app = Flask(__name__)

app.secret_key = "Yang"

app.config['SESSION_TYPE'] = 'filesystem'  # session类型为文件
app.config['SESSION_FILE_DIR'] = r'C:\\Users\\25754\\Desktop\\session'  # session保存路径
app.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('/')
def index():
    session['username'] = 'yang'
    return 'index'
 
@app.route('/session')
def get_session():
    return session['username']
 
if __name__ == '__main__':
    app.run(debug=True)

二、redis

from flask import Flask, session
from flask_session import Session
import redis
 
app = Flask(__name__)
app.debug = True
app.secret_key = 'xxxx'
 
app.config['SESSION_TYPE'] = 'redis'  # session类型为redis
app.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='')  # 用于连接redis的配置
 
Session(app)
 
@app.route('/')
def index():
    session['username'] = 'yang'
    return 'index'
 
@app.route('/session')
def get_session():
    return session['username']
 
if __name__ == '__main__':
    app.run()

三、mongodb

from flask import Flask, session
from flask_session import Session
import pymongo
 
app = Flask(__name__)
app.debug = True
app.secret_key = 'xxxx'
 
app.config['SESSION_TYPE'] = 'mongodb'  # session类型为mongodb
 
app.config['SESSION_MONGODB'] = pymongo.MongoClient()
app.config['SESSION_MONGODB_DB'] = 'db0' # mongo的db名称(数据库名称)
app.config['SESSION_MONGODB_COLLECT'] = 'session' # 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('/')
def index():
    session['username'] = 'yang'
    return 'index'
 
@app.route('/session')
def get_session():
    return session['username']
 
if __name__ == '__main__':
    app.run()

四、sqlalchemy

表结构

from flask import Flask, session
from flask_session import Session
from flask_sqlalchemy import SQLAlchemy
 
app = Flask(__name__)
app.debug = True
app.secret_key = 'xxxx'
 
# 设置数据库链接
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://test01:[email protected]:3306/test01?charset=utf8'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
 
# 实例化SQLAlchemy
db = SQLAlchemy(app)
 
 
app.config['SESSION_TYPE'] = 'sqlalchemy'  # session类型为sqlalchemy
app.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中的值的前缀

Session(app)
 
@app.route('/')
def index():
    session['username'] = 'yang'
    return 'index'
 
@app.route('/session')
def get_session():
    return session['username']
 
 
if __name__ == '__main__':
    app.run()

 

标签:session,__,框架,Flask,app,SESSION,config
From: https://www.cnblogs.com/yang-2018/p/17298752.html

相关文章

  • ES搜索框架--设置IK分词器
    ES的默认中文分词效果太差了,稍微长一点的词句就完全匹配不到,于是选择使用安装IK中文分词器来实现索引的分词。参考:https://blog.csdn.net/w1014074794/article/details/119762827https://www.bbsmax.com/A/6pdDqDaXzw/一、安装官网教程:https://github.com/medcl/elasticsearch-ana......
  • ES搜索框架--基本原理
    一、基本原理参考博客(非常详细):https://blog.csdn.net/weixin_43111776/article/details/124952148我们先来看看MySQL中的索引,在MySQL关系表中,每一行数据都有一个主键,我们在查询数据的时候会先找到数据的主键,再根据主键去找到整行数据,这种索引形式成为正排索引,本质是通过key来查询v......
  • ES搜索框架--Windows下简单使用ES框架
    前面讲述了什么是ES框架和为什么要用ES框架进行检索,现在开始尝试在windows下安装并简单使用ES框架参考:官方文档中文版,英文版linux下部署:https://www.elastic.co/guide/en/elasticsearch/reference/6.0/_installation.html一、安装1.下载解压安装包官网选择相应版本进行下载zip包,在......
  • ES搜索框架--ES部署到Centos8服务器
    参考:https://blog.csdn.net/Me_xuan/article/details/114608076https://www.cnblogs.com/chenxitag/p/12320868.html一、下载安装1.下载ES使用elasticsearch7.10.2,到官网下载对应的linux包,然后上传到服务器文件夹下,cd到文件夹后使用tar命令解压tar-xvfelasticsearch-7.10.2-linu......
  • 《Flask Web 开发指南 pt.2》
    哈喽大家好,我是咸鱼 在《FlaskWeb开发指南pt.1》中,咸鱼跟大家介绍了Flask的由来——诞生于一个愚人节玩笑,简单介绍了一些关于Flask的概念,并且编写了一个简单的Flask程序 在编写Flask程序的时候,你需要注意你的程序文件不要命名为flask.py,建议命名为app.py或者......
  • 腾讯出品小程序自动化测试框架【Minium】系列(七)测试框架的设计和开发
    前言整个框架的开发及调通是在3月27日晚上22点完成,如下:这篇文章真的是拖了太久了,久到我居然把代码部分完成后,彻底给忘了,这记性,真的是年纪大了!框架的设计开发1、框架搭建设计要素日志&测试步骤报告&失败截图配置文件&数据源设计公共函数&API封装测试数据&参数化、解耦......
  • flask_day05:信号 Django信号 flask-script sqlalchemy 创建操作数据表
    目录回顾信号比如:用户表新增一条记录时,就记录一下日志内置信号:flask少一些,Django多一些使用内置信号量的步骤自定义信号Django信号django中使用内置信号flask-script自定制命令sqlalchemy快速使用原生操作的快速使用创建操作数据表鲁棒性链路,链路追踪,上下游,大的单体应用,上游还......
  • Scrapy爬虫框架 -- 图片爬取
    一、新建一个tupian爬虫项目scrapystartprojecttupian二、进入到tupian项目,新建一个image爬虫文件cdtupianscrapygenspiderimagewww.xxx.com三、修改配置文件settingsROBOTSTXT_OBEY=FalseLOG_LEVEL='ERROR'USER_AGENT="Mozilla/5.0(WindowsNT10.0;Win64;x64)......
  • iOS开发_常用框架简要说明
    ①UIKit:用于构建iOS应用程序的框架,提供了应用程序的基本结构,例如UI类和控制器类。②Foundation:提供了一系列基于Cocoa的基本服务,如Unicode字符串、网络服务和数据管理。③CoreData:用于管理应用程序中的数据对象和关系图。④CloudKit:提供一个云端数据存储和......
  • flask-sqlalchemy
    1.sqlalchemy快速使用flask中没有orm框架。我们需要使用一个对象关系映射来操作数据库。sqlalchemy就是其中之一。SQLAlchemy是一个基于Python实现的ORM框架。该框架建立在DBAPI之上,使用关系对象映射进行数据库操作,简言之便是:将类和对象转换成SQL,然后使用数据API执行SQL并获取......