Sqlalchemy-flask到处都使用相同的作用域会话是否不好

时间:2018-10-03 02:04:41

标签: python flask sqlalchemy flask-sqlalchemy

我有以下内容:

from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()

app = Flask(name)
app.config['SQLALCHEMY_DATABASE_URI'] = Settings.POSTGRES_URL
app.config['SQLALCHEMY_BINDS'] = {}
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['ERROR_INCLUDE_MESSAGE'] = False

db.init_app(app)

在我的应用中的任何地方,我都使用相同的db.session

user = User(name="John")
db.session.add(user)
db.session.commit()

如果我的应用程序有多个工作程序,我是否会在一次调用commit的过程中提交多个用户?如果可以,该如何避免这个问题?

我很困惑,因为我听说针对单个请求(例如接受的答案here)的模块之间的作用域会话应该相同。但是,当我使用create_scoped_session方法时,我看不到这种现象。

>>> from lyric_base_module import db
>>> db.create_scoped_session() is db.create_scoped_session()
False

0 个答案:

没有答案