我有以下内容:
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