首页 > 其他分享 >在 Flask 项目中配置 Session:简明指南

在 Flask 项目中配置 Session:简明指南

时间:2024-05-30 22:59:58浏览次数:21  
标签:__ Flask app 简明 会话 Session key

在 Flask 项目中配置 Session:简明指南

本文介绍如何在 Flask 项目中配置会话

1. Flask 内置会话

Flask 自带会话管理功能,使用客户端 Cookie 存储会话数据。默认情况下,会话数据是签名的,以防止篡改,但未加密。因此,不建议在会话中存储敏感信息。Flask 内置会话适用于小型应用或会话数据量较少的情况。此外,默认情况下,Flask 的会话 Cookie 在关闭浏览器后会被清除。

from flask import Flask, session

app = Flask(__name__)
app.secret_key = 'your_secret_key'  # 设置 secret_key 以签名会话数据

@app.route('/')
def index():
    session['key'] = 'value'
    return 'Session data set'

if __name__ == '__main__':
    app.run(debug=True)

2. 使用 Flask-Session 扩展

对于需要更强大会话管理的应用,可以使用 Flask-Session 扩展,将会话数据存储在服务器端。Flask-Session 支持多种存储后端,如文件系统、Redis、Memcached 等。

安装 Flask-Session
pip install Flask-Session
配置 Flask-Session
from flask import Flask
from flask_session import Session

app = Flask(__name__)
app.secret_key = 'your_secret_key'  # 可以使用uuid

# 配置 Flask-Session
app.config['SESSION_TYPE'] = 'filesystem'  # 使用文件系统存储会话
app.config['SESSION_FILE_DIR'] = '/path/to/session/files'  # 会话文件存储路径

# 初始化 Flask-Session
Session(app)

@app.route('/')
def index():
    session['key'] = 'value'
    return 'Session data set'

if __name__ == '__main__':
    app.run(debug=True)

3. 生成安全的 secret_key

secret_key 对于 Flask 的会话管理和其他安全功能至关重要。推荐使用 UUID 生成一个安全且唯一的 secret_key

import uuid

def generate_secret_key():
    return str(uuid.uuid4())

或者直接通过这个网页来获得一个uuid

在线UUID生成工具

4. 默认配置值

使用 Flask-Session 时,有一些重要的默认配置值:

  • SESSION_TYPE: 默认为 null。需要设置为 'filesystem', 'redis', 'memcached', 等有效类型。
  • SESSION_PERMANENT: 默认为 True。会话将被视为永久会话。
  • PERMANENT_SESSION_LIFETIME: 默认为 31 天(timedelta(days=31))。
  • SESSION_FILE_DIR: 默认为当前工作目录下的 flask_session 目录。

总结

在 Flask 项目中配置会话既可以简单使用内置功能,也可以借助 Flask-Session 扩展来管理更复杂的会话需求。希望这篇指南对你在未来的 Flask 项目中配置会话有所帮助。 Happy coding!

标签:__,Flask,app,简明,会话,Session,key
From: https://www.cnblogs.com/gods/p/18223450

相关文章

  • DVWA-Weak Session IDs
    用户登录之后,服务端会创建一个session,里面存储用户的状态和相关信息。而为了缓和客户端的存储压力,客户端只存储一个session_id,一般session_id放在cookie中。如果session_id被劫持,黑客可以使用其登录直接登录到目标账户。题目有点没看懂拿HighLevel举例,只拿到PHPSESSID就......
  • 计算机毕业设计python-django生态评价网站系统flask框架
    网站主要使用的模式是管理员上传各地生态图片和一些土地,降雨,植被的数据,用户登录到网站上根据网站上的数据进行生态的评价,综合了多方面的想法和不同的建议,查看网站的人来说能够看到不同的想法,不局限于一种想法,也可以在网站上发表自己的看法,并作出相应的对策。采用前后端分离开发......
  • python-django学院校园失物招领管理系统flask框架
    当前大多数校园失物招领信息主要是由志愿者联合会来组织开展,开展形式主要通过在公共场所填写失物招领信息以及志愿者服务公众号来传播失物招领消息,该公众号主要发布失物招领信息,学生教师需要通过到现场或者志愿者公众号去了解,这种形式主要局限于失主与拾主的联系以及失主的寻物......
  • python+django高校学生兼职信息网站设计pycharm项目flask
     自高等教育改革化,人们普遍重点观点放在了注重学生的学习能力和社会实践之上。为了满足了人们对教育的渴求,保障了人受教育的权利,各高校采取了扩招,广开大门对每位求知好学之人。随着学校人员增多,大量的求职需求也初显了出来。在信息化的时代,人们已经不像从前挨家挨户的求职,投简......
  • flask 配合 sqlite3 维护数据库的数据方法
    importjsonimportsqlite3con=sqlite3.connect("Test.db")cur=con.cursor()#==https://blog.csdn.net/GuoQiZhang/article/details/91344509数据库案例.cur.execute("CREATETABLEIFNOTEXISTSmed(idINTEGERPRIMARYKEY,dataTEXT)")c......
  • 6.基于传统的Cookie和Session实现用户的认证授权
    6.1概述RBAC(Role-BasedAccessControl,基于角色的访问控制)权限按钮控制是一种细粒度的权限管理方式,它允许系统管理员根据用户的角色来精确控制用户界面中功能按钮的可见性和可用性。在RBAC模型中,权限不仅限于访问某个页面或模块,还可以细化到页面上每个操作按钮的权限。......
  • ClickHouse 留存、路径、漏斗、session 位图 roaringbitmap 位图优化
    Clickhouse在大数据分析平台-留存分析上的应用_大数据_腾讯云大数据_InfoQ写作社区https://xie.infoq.cn/article/c7af40e5ba5f5f5beaccde990ClickHouse实战留存、路径、漏斗、session-腾讯云开发者社区-腾讯云https://cloud.tencent.com/developer/article/1953792导语 | ......
  • Cron表达式简明教程
    Cron表达式简明教程Cron表达式的起源可以追溯到1970年代早期的UNIX系统。以下是关于Cron表达式起源的详细介绍:起源:时间背景:Cron表达式最初是在1970年代早期的UNIX系统中创建的。设计者:虽然Cron表达式的具体设计者没有明确的记录,但它与UNIX系统的整体设计和开发密切相关。UNIX......
  • python社区宠物登记养宠交流系统vue+flask_django包调试pycharm
    有何创新之处(1)系统资源闭环整合,实现了综合功能高度集成。(2)采用DJANGO框架,开发软件更加方便、快捷、高效用户具体功能如下:1、社区管理员:注册、登录、个人信息管理、发帖管理、评论管理、宠物规范管理、社区用户管理、宠物类别管理、宠物信息管理(查询宠物信息,修改宠物信息,删......
  • 请描述一下 cookies sessionStorage和localstorage区别
    Cookies、sessionStorage和localStorage都是Web浏览器提供的客户端存储机制,但它们之间有一些重要的区别:存储容量:Cookies最大容量约为4KB。sessionStorage和localStorage的容量都约为5MB。有效期:Cookies有明确的过期时间,可以设置为在浏览......