【发布时间】:2019-05-08 11:18:03
【问题描述】:
在我们的一个新项目中,我们希望将会话数据存储到 PostgreSQL 数据库中。
我在互联网上找到了几个代码 sn-p 来执行此操作,但没有一个特定于 PostgreSQL。
【问题讨论】:
标签: python postgresql session flask
在我们的一个新项目中,我们希望将会话数据存储到 PostgreSQL 数据库中。
我在互联网上找到了几个代码 sn-p 来执行此操作,但没有一个特定于 PostgreSQL。
【问题讨论】:
标签: python postgresql session flask
使用Flask-Session project;它提供了一个 Flask 会话实现,可以将数据存储在任何 SQLAlchemy supported database 中,包括 PostgreSQL。
安装supported PostgreSQL client libraries之一;大多数人使用psycopg2。
安装Flask-SQLAlchemy;当你这样做时,它会引入 SQLAlchemy。该库将 SQLAlchemy 与 Flask 集成。
安装 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"
在您的 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 方言包可用的其他数据库。
【讨论】: