繁体   English   中英

如何在 Postgres 数据库中保存会话?

[英]How to save sessions in a Postgres database?

在我们的一个新项目中,我们希望将会话数据存储到 PostgreSQL 数据库中。

我在互联网上找到了几个代码片段来做到这一点,但没有一个是针对 PostgreSQL 的。

使用Flask-Session 项目 它提供了一个 Flask 会话实现,可以将数据存储在任何SQLAlchemy 支持的数据库中,包括 PostgreSQL。

  1. 安装 受支持的 PostgreSQL 客户端库之一 大多数人使用psycopg2

  2. 安装Flask-SQLAlchemy 当你这样做时,它会引入 SQLAlchemy。 该库将 SQLAlchemy 与 Flask 集成在一起。

  3. 安装 Flask-Session 并将其配置为使用 SQLAlchemy 会话类型和 PostgreSQL 连接 URI; 通过将以下配置选项添加到 Flask 配置中来实现:

     SESSION_TYPE = "sqlalchemy" # URI to connect to the database. postgresql:// uses psycopg2, see the documentation SESSION_SQLALCHEMY = "postgresql://<user>:<password>@hostname:port/database" # What table in the database to use, default is "sessions" SESSION_SQLALCHEMY_TABLE = "sessions"
  4. 在 Flask 应用程序中使用 Flask-Session 扩展; 下面的代码假设你有一个app变量,它是Flask()对象,已经用上面的配置进行了配置:

     from flask_session import Session # app has been set and configured Session(app) # alternatively, create a `Session()` object without passing in app # and then when ready, use `.init_app(app)`: # sess = Session() # sess.init_app(app)

强调:由于 Flask-Session 使用 SQLAlchemy,它适用于SQLAlchemy 支持的所有数据库引擎,而不仅仅是 PostgreSQL。 因此,上述内容适用于 SQLite、MySQL、Oracle、Microsoft SQL Server、Firebird、Sybase 和任何数量的其他具有第三方 SQLAlchemy 方言包的数据库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM