在我们的一个新项目中,我们希望将会话数据存储到PostgreSQL数据库中。
我在互联网上找到了几个代码段来执行此操作,但是没有一个特定于PostgreSQL。
答案 0 :(得分:2)
使用Flask-Session project;它提供了Flask会话实现,可以将数据存储在任何SQLAlchemy supported database中,包括PostgreSQL。
安装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方言包的任何其他数据库。