一,Flask_Session介绍

因为flask自带的session是将session存在cookie中;

所以才有了第三方Flask_session插件,可以将session存储在我们想存储的数据库中(redis等)

二,使用

首先需要安装一下Flask_session

pip install Flask-Session
from flask import Flask, request, render_template, redirect, session
from flask_session import Session
import redis app = Flask(__name__)
# app.secret_key = "123"
app.config["SESSION_TYPE"] = "redis"
app.config["SESSION_REDIS"] = redis.Redis(host="localhost", port=6379, db=3)
Session(app) @app.route("/login", methods=("GET", "POST"))
def login():
msg = ""
if request.method == "POST":
print(request.form)
print(request.form.get("hhh"))
username = request.form.get("username")
pwd = request.form.get("pwd")
if username == "ggg" and pwd == "123":
session["user"] = username
return redirect("/home")
msg = "用户名或者密码错误"
return render_template("login.html", msg=msg)

以上为我们使用Redis数据库存session的配置,我们具体使用session的方式还是和flask中自带的session一样。

三,源码

    def _get_interface(self, app):
config = app.config.copy()
config.setdefault('SESSION_TYPE', 'null')
config.setdefault('SESSION_PERMANENT', True)
config.setdefault('SESSION_USE_SIGNER', False)
config.setdefault('SESSION_KEY_PREFIX', 'session:')
config.setdefault('SESSION_REDIS', None)
config.setdefault('SESSION_MEMCACHED', None)
config.setdefault('SESSION_FILE_DIR',
os.path.join(os.getcwd(), 'flask_session'))
config.setdefault('SESSION_FILE_THRESHOLD', 500)
config.setdefault('SESSION_FILE_MODE', 384)
config.setdefault('SESSION_MONGODB', None)
config.setdefault('SESSION_MONGODB_DB', 'flask_session')
config.setdefault('SESSION_MONGODB_COLLECT', 'sessions')
config.setdefault('SESSION_SQLALCHEMY', None)
config.setdefault('SESSION_SQLALCHEMY_TABLE', 'sessions') if config['SESSION_TYPE'] == 'redis':
session_interface = RedisSessionInterface(
config['SESSION_REDIS'], config['SESSION_KEY_PREFIX'],
config['SESSION_USE_SIGNER'], config['SESSION_PERMANENT'])
.......
class RedisSessionInterface(SessionInterface):
def __init__(self, redis, key_prefix, use_signer=False, permanent=True):...
... def open_session(self, app, request): ... def save_session(self, app, session, response):... # 通过重写这两个方法,实现

源码中表示我们可以这样在redis中查看存储的session

get  session:+ 随机字符串(uuid.uuid4())

Flask之Flask_Session插件的更多相关文章

  1. Flask组件 flask_session

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

  2. Flask:Flask-script插件

    Flask-Script插件扩展提供向Flask插入外部脚本的功能,包括一个开发用的服务器,一个定制的python shell,设置数据库的脚本,cronjobs,及其它运行在web应用之外的命令行任 ...

  3. 4、flask之分页插件的使用、添加后保留原url搜索条件、单例模式

    本篇导航: flask实现分页 添加后保留原url搜索条件 单例模式 一.flask实现分页 1.django项目中写过的分页组件 from urllib.parse import urlencode ...

  4. flask之分页插件的使用、添加后保留原url搜索条件、单例模式

    本篇导航: flask实现分页 添加后保留原url搜索条件 单例模式 一.flask实现分页 1.django项目中写过的分页组件 from urllib.parse import urlencode ...

  5. 第四篇 与Flask相关的插件(flask-session、wtforms)

    公司中使用SQL的种方式: 1. 写Django:ORM(关系对象映射), 2. 写Flask和其他:有两种方式: (1) 原生SQL:使用原生SQL有两种选择: A. pymysql (python ...

  6. python全栈开发day112-CBV、flask_session、WTForms

    1.Flask 中的 CBV class Index(views.MethodView): # methods = ["POST"] # decorators = [war,nei ...

  7. flask基础之session原理详解(十)

    前言 flask_session是flask框架实现session功能的一个插件,用来替代flask自带的session实现机制,flask默认的session信息保存在cookie中,不够安全和灵活 ...

  8. 浅谈 Flask 框架

    一.框架对比 Django —— 教科书式框架 优势:组件全,功能全,教科书 劣势:占用资源,创建复杂度高 Flask —— 以简单为基准开发,一切从简,能省则省 优势:轻,块 劣势:先天不足,第三方 ...

  9. Flask-第三方插件

    Flask-Session 因为flask自带的session是将session存在cookie中: 所以才有了第三方Flask_session插件,可以将session存储在我们想存储的数据库中(r ...

随机推荐

  1. Oracle系列十一 数据处理

    数据操纵语言 DML(Data Manipulation Language – 数据操纵语言) 可以在下列条件下执行: 向表中插入数据 修改现存数据 删除现存数据 事务是由完成若干项工作的DML语句组 ...

  2. Eclipse新项目检出后报错第一步:导入lib中的jar包【我】

    新检出项目报错,第一步,先看项目 web-info下的 lib目录里的包是不是都添加到项目构建中了,可以全选先添加到项目构建中,看项目是否还在报错.

  3. Program不是内部命令也不是外部命令

    在项目中使用java动态生成.bat文件,再调试时执行bat文件失败! 显示:Program不是内部命令也不是外部命令 百度了一下:C:\"Program Files"或progr ...

  4. springboot项目中使用spring-data-Redis对map序列化时报错

    错误信息: java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String at org.spri ...

  5. LODOP问答部分链接

    点击链接进入相关简短问答博文: 问答大全 纸张打印机 注册 table表格 clodop测试地址 字体 行间距.字间距 clodop回调函数 SET_PRINT_STYLEA 页眉页脚 超文本 条码 ...

  6. chrome/firefox如何设置很色背景

    firefox 菜单栏设置黑色 自带黑色主题,直接Enabled 页面背景设置黑色 下载扩展Extensions:Dark Reader chrome 菜单栏设置黑色 下载主题Theme:Just b ...

  7. 【神经网络与深度学习】Win10+VS2015 caffe环境搭建(极其详细)

    caffe是好用,可是配置其环境实在是太痛苦了,依赖的库很多不说,在VS上编译还各种报错,你能想象那种被一百多个红色提示所笼罩的恐惧.  且网上很多教程是VS2013环境下编译的,问人很多也说让我把1 ...

  8. [转帖]龙芯3A/3B3000通用处理器出货超30万 获得“中国芯”大奖

    龙芯3A/3B3000通用处理器出货超30万 获得“中国芯”大奖 http://www.eetop.cn/cpu_soc/6946247.html 2019.10 的新闻 出后量 30万 我们贡献了 ...

  9. [HAOI2008]硬币购物-题解

    传送门 解答 根据容斥原理 \[ \left|\bigcap_{i=1}^n \overline{S_i}\right| = |U| - \left|\bigcup_{i=1}^n S_i\right ...

  10. leetcode最长回文

    给定一个字符串 s,找到 s 中最长的回文子串.你可以假设 s 的最大长度为 1000. 示例 1: 输入: "babad" 输出: "bab" 注意: &qu ...