flask插件系列之flask_session会话机制
flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制。
配置参数详解
- SESSION_COOKIE_NAME
设置返回给客户端的cookie的名称,默认是“session”;放置在response的头部;
- SESSION_COOKIE_DOMAIN
设置会话的域,默认是当前的服务器,因为Session是一个全局的变量,可能应用在多个app中;
- SESSION_COOKIE_PATH
设置会话的路径,即哪些路由下应该设置cookie,如果不设置,那么默认为‘/’,所有的路由都会设置cookie;
- SESSION_COOKIE_HTTPONLY
cookie应该和httponly标志一起设置,默认为True,这个一般采用默认。
- SESSION_COOKIE_SECURE
cookie是否和安全标志一起设置,默认为false,这个一般采用默认。
- PERMANENT_SESSION_LIFETIME
设置session的有效期,即cookie的失效时间,单位是s。这个参数很重要,因为默认会话是永久性的。
- SESSION_TYPE
设置session保存的位置,可以有多种配置,
SESSION_TYPE = ‘null’ : 采用flask默认的保存在cookie中;
SESSION_TYPE = ‘redis’ : 保存在redis中
SESSION_TYPE = ‘memcached’ : 保存在memcache
SESSION_TYPE = 'filesystem' : 保存在文件
SESSION_TYPE = 'mongodb' : 保存在MongoDB
SESSION_TYPE = 'sqlalchemy' : 保存在关系型数据库
- SESSION_PERMANENT
是否使用永久会话,默认True,但是如果设置了PERMANENT_SESSION_LIFETIME,则这个失效;
- SESSION_USE_SIGNER
是否为cookie设置签名来保护数据不被更改,默认是False;如果设置True,那么必须设置flask的secret_key参数;
- SESSION_KEY_PREFIX
在所有的会话键之前添加前缀,对于不同的应用程序可以使用不同的前缀;默认“session:”,即保存在redis中的键的名称前都是以“session:”开头;
for example:
SESSION_KEY_PREFIX = 'session:'
- SESSION_REDIS
如果SESSION_TYPE = ‘redis’,那么设置该参数连接哪个redis,其是一个连接对象;如果不设置的话,默认连接127.0.0.1:6379/0
for example:
SESSION_REDIS = redis.StrictRedis(host="127.0.0.1", port=6390, db=4)
关于其他的保存中间人参考:https://pythonhosted.org/Flask-Session/
一份常用的flask_session的配置
# 指明对session数据进行保护
SECRET_KEY = '123'
SESSION_USE_SIGNER = True
# 指明保存到redis中
SESSION_TYPE = "redis"
SESSION_REDIS = redis.StrictRedis(host="127.0.0.1", port=6390, db=4)
# session的有效期,单位:秒
PERMANENT_SESSION_LIFETIME = 7200
flask_session的基本使用
# extensions.py
# 创建一个session对象
from flask_session import Session
# 创建一个Session的实例
session = Session()
# 在app初始化时初始化session对象,即加载配置
# __init__.py
from flask import Flask
app = Flask(__name__)
session.init_app(app=app)
#但是在使用的时候用的是flask的应用上下文对象session
# task.py
from Flask import session
@app.route('/test', methods=['POST'])
def test():
session.get('user',None)
return ""
flask插件系列之flask_session会话机制的更多相关文章
- flask插件之flask_session会话机制
flask-session是flask框架的session组件,由于原来flask内置session使用签名cookie保存,该组件则将支持session保存到多个地方,如: redis:保存数据的一 ...
- flask插件系列之flask_uploads上传文件
前言 flask可以实现上传文件和下载文件的基本功能,但如果想要健壮的功能,使用flask_uploads插件是十分方便的. 安装 pip install flask_uploads 基本使用 # e ...
- flask插件系列之flask_caching缓存
前言 为了尽量减少缓存穿透,同时减少web的响应时间,我们可以针对那些需要一定时间才能获取结果的函数和那些不需要频繁更新的视图函数提供缓存服务,可以在一定的时间内直接返回结果而不是每次都需要计算或者从 ...
- flask插件系列之SQLAlchemy基础使用
sqlalchemy是一个操作关系型数据库的ORM工具.下面研究一下单独使用和其在flask框架中的使用方法. 直接使用sqlalchemy操作数据库 安装sqlalchemy pip install ...
- flask插件系列之Flask-WTF表单
flask_wtf是flask框架的表单验证模块,可以很方便生成表单,也可以当做json数据交互的验证工具,支持热插拔. 安装 pip install Flask-WTF Flask-WTF其实是对w ...
- flask插件系列之flask_restful设计API
前言 flask框架默认的路由和视图函数映射规则是通过在视图函数上直接添加路由装饰器来实现的,这使得路由和视图函数的对应关系变得清晰,但对于统一的API开发就变得不怎么美妙了,尤其是当路由接口足够多的 ...
- flask插件系列之SQLAlchemy实用技巧
下面记录一下SQLAlchemy使用的技巧. 在多模块下定义models 如果由多个蓝图下读定义了model模块,在初始化的时候需要加载到上下文中. 当使用flask_Migrate迁移数据库的时候, ...
- flask插件系列之flask_celery异步任务神器
现在继续学习在集成的框架中如何使用celery. 在Flask中使用celery 在Flask中集成celery需要做到两点: 创建celery的实例对象的名字必须是flask应用程序app的名字,否 ...
- flask插件系列之flask_cors跨域请求
前后端分离在开发调试阶段本地的flask测试服务器需要允许跨域访问,简单解决办法有二: 使用flask_cors包 安装 pip install flask_cors 初始化的时候加载配置,这样就可以 ...
随机推荐
- 【bzoj2741】[FOTILE模拟赛]L 可持久化Trie树+分块
题目描述 FOTILE得到了一个长为N的序列A,为了拯救地球,他希望知道某些区间内的最大的连续XOR和. 即对于一个询问,你需要求出max(Ai xor Ai+1 xor Ai+2 ... xor A ...
- BZOJ4998 星球联盟(LCT+双连通分量+并查集)
即要求动态维护边双.出现环时将路径上的点合并即可.LCT维护.具体地,加边成环时makeroot+access+splay一套把这段路径提出来,暴力dfs修改并查集祖先,并将这部分与根断开,视为删除这 ...
- 洛谷 P2015 二叉苹果树
老规矩,先放题面 题目描述 有一棵苹果树,如果树枝有分叉,一定是分2叉(就是说没有只有1个儿子的结点) 这棵树共有N个结点(叶子点或者树枝分叉点),编号为1-N,树根编号一定是1. 我们用一根树枝两端 ...
- Day21-获取用户请求相关信息及请求头
1. request里面还包含请求头等信息,可以打印看一下. views.py中的程序 from django.shortcuts import render,HttpResponse from dj ...
- Mybatis笔记四:Mybatis中的resultType和resultMap查询操作实例详解
resultType和resultMap只能有一个成立,resultType是直接表示返回类型的,而resultMap则是对外部ResultMap的引用,resultMap解决复杂查询是的映射问题.比 ...
- 【DP】【CF31E】 TV Game
传送门 Description 给你一个长度为\(2n\)的数字,每次可以从左侧选一个数字,加入连接到一个数字\(A\)或另一个数字\(B\)后面.\(A,B\)初始为\(0\).\(A\)与\(B\ ...
- SAS8.1安装步骤(附图)
安装前应当把系统时间更改到一九九几年. 1.在解压后的文件夹里找到 setup .exe 双击 开始安装 2.单击SAS System Setup 3.点击Next 4.选择 complete 并单击 ...
- Spring MVC POJO传参方式
有两POJO类 Address.java package com.proc; public class Address { private String province; private Strin ...
- laravel query builder/ Eloquent builder 添加自定义方法
上次干这事已经是一年前了,之前的做法特别的繁琐.冗余,具体就是创建一个自定义 Builder 类,继承自 Query\Builder,然后覆盖 Connection 里面获取 Builder 的方法, ...
- 「Django」rest_framework学习系列-视图
方式一 1.settings设置 INSTALLED_APPS = [ ... 'rest_framework', ] 2.views设置 from rest_framework.response i ...