如何详细设置和优化Flask框架中的session功能?

更新于
2026-09-25 23:57:29
30阅读来源:SEO资讯
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计550个文字,预计阅读时间需要3分钟。

如何详细设置和优化Flask框架中的session功能?

目录 + Flask中的session + session设置 + 关于session的设置 + cookies中的session + session序列化机制 + session反序列化机制 + session的使用和验证 + Flask中的session + session设置 + Flask除请求对象外的其他方式 + session

目录
  • Flask中的session
    • session设置
    • 关于session的设置
  • cookies中的session
    • session序列化机制
    • session反序列化机制
  • session的使用和验证

    Flask中的session

    session设置

    Flask除请求对象之外,还有一个 session 对象。

    它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需要设置一个密钥。

    我们知道,在django中的session是存储在服务器中的数据库中的,也就是django_session表中,而flask中的session是交由客户端保管的,也就是存储在本地的cookie中。

    session的方法:

    • session['username'] = 'stzz';设置session
    • session.pop("username",None);删除session

    关于session的设置

    app.session_cookie_name = "I am not Session"

    其他配置

    'SESSION_COOKIE_NAME': 'session', # 设置session的名字 'SESSION_COOKIE_DOMAIN': None, 'SESSION_COOKIE_PATH': None, 'SESSION_COOKIE_HTTPONLY': True, 'SESSION_COOKIE_SECURE': False, 'SESSION_REFRESH_EACH_REQUEST': True, # 是否每次都跟新 'PERMANENT_SESSION_LIFETIME': timedelta(days=31) # 设置session的过期时间

    如何详细设置和优化Flask框架中的session功能?

    cookies中的session

    cookies 中 session 存储的是通过 secret_key 加密后的 key , 通过这个 key 从flask程序的内存中找到用户对应的session信息

    session序列化机制

    当我们开启session时,设置session["username"]="stzz",flask会帮我们创建一个字典{"username":"stzz"},然后通过secret_key + 时间戳 + 签名经过加密生成一个字符串。

    session反序列化机制

    当客户端发送请求时,request请求会带上cookie,也就是session中的数据存储在其中,这个数据就是之前加密后的字符串,发送到后端后,flask会通过secret_key去解密session中的加密字符串,从而获取{"username":"stzz"}从而来验证是否登录。

    session的使用和验证

    from flask.blueprints import Blueprint from flask import Response, session from flask_restful import fields, marshal from flask_sqlalchemy.query import Query from sqlalchemy import or_, and_ from ..model.UserModel import User import json user_bp = Blueprint("user", __name__, url_prefix="/user") user_fields = { "id": fields.Integer, "username": fields.String, "password": fields.String, "age": fields.Integer } @user_bp.route("/hello") def hello(): result = User.query.filter(or_(User.username.startswith("王"), and_(User.username == "王天祥", User.age > 21))) return marshal(result.all(), fields=user_fields) @user_bp.route("/setSession", methods=["GET", "POST"]) def setSession(): session["name"] = "STZZ" return "设置session成功!!!" @user_bp.route("/getSession") def getSession(): username = session.get("name") if username: return username else: return "用户未登录!!!"

    到此这篇关于Flask框架中的session设置详解的文章就介绍到这了,更多相关Flask session内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!

    本文共计550个文字,预计阅读时间需要3分钟。

    如何详细设置和优化Flask框架中的session功能?

    目录 + Flask中的session + session设置 + 关于session的设置 + cookies中的session + session序列化机制 + session反序列化机制 + session的使用和验证 + Flask中的session + session设置 + Flask除请求对象外的其他方式 + session

    目录
    • Flask中的session
      • session设置
      • 关于session的设置
    • cookies中的session
      • session序列化机制
      • session反序列化机制
    • session的使用和验证

      Flask中的session

      session设置

      Flask除请求对象之外,还有一个 session 对象。

      它允许你在不同请求间存储特定用户的信息。它是在 Cookies 的基础上实现的,并且对 Cookies 进行密钥签名要使用会话,你需要设置一个密钥。

      我们知道,在django中的session是存储在服务器中的数据库中的,也就是django_session表中,而flask中的session是交由客户端保管的,也就是存储在本地的cookie中。

      session的方法:

      • session['username'] = 'stzz';设置session
      • session.pop("username",None);删除session

      关于session的设置

      app.session_cookie_name = "I am not Session"

      其他配置

      'SESSION_COOKIE_NAME': 'session', # 设置session的名字 'SESSION_COOKIE_DOMAIN': None, 'SESSION_COOKIE_PATH': None, 'SESSION_COOKIE_HTTPONLY': True, 'SESSION_COOKIE_SECURE': False, 'SESSION_REFRESH_EACH_REQUEST': True, # 是否每次都跟新 'PERMANENT_SESSION_LIFETIME': timedelta(days=31) # 设置session的过期时间

      如何详细设置和优化Flask框架中的session功能?

      cookies中的session

      cookies 中 session 存储的是通过 secret_key 加密后的 key , 通过这个 key 从flask程序的内存中找到用户对应的session信息

      session序列化机制

      当我们开启session时,设置session["username"]="stzz",flask会帮我们创建一个字典{"username":"stzz"},然后通过secret_key + 时间戳 + 签名经过加密生成一个字符串。

      session反序列化机制

      当客户端发送请求时,request请求会带上cookie,也就是session中的数据存储在其中,这个数据就是之前加密后的字符串,发送到后端后,flask会通过secret_key去解密session中的加密字符串,从而获取{"username":"stzz"}从而来验证是否登录。

      session的使用和验证

      from flask.blueprints import Blueprint from flask import Response, session from flask_restful import fields, marshal from flask_sqlalchemy.query import Query from sqlalchemy import or_, and_ from ..model.UserModel import User import json user_bp = Blueprint("user", __name__, url_prefix="/user") user_fields = { "id": fields.Integer, "username": fields.String, "password": fields.String, "age": fields.Integer } @user_bp.route("/hello") def hello(): result = User.query.filter(or_(User.username.startswith("王"), and_(User.username == "王天祥", User.age > 21))) return marshal(result.all(), fields=user_fields) @user_bp.route("/setSession", methods=["GET", "POST"]) def setSession(): session["name"] = "STZZ" return "设置session成功!!!" @user_bp.route("/getSession") def getSession(): username = session.get("name") if username: return username else: return "用户未登录!!!"

      到此这篇关于Flask框架中的session设置详解的文章就介绍到这了,更多相关Flask session内容请搜索自由互联以前的文章或继续浏览下面的相关文章希望大家以后多多支持自由互联!