使用flask sqlalchemy跨不同模块访问相同的db.session?
我正在用我的。我声明要附加到flask应用程序的使用flask sqlalchemy跨不同模块访问相同的db.session?,flask,sqlalchemy,flask-sqlalchemy,Flask,Sqlalchemy,Flask Sqlalchemy,我正在用我的。我声明要附加到flask应用程序的db对象: 在uuu init_uuuuu.py中 from flask import Flask from flask.ext.sqlalchemy import SQLAlchemy app = Flask(__name__) .. db = SQLAlchemy(app) 现在我在视图中使用db,并使用sqlalchemy管理db.session的设置和拆卸。然后我在business中调用一个方法,该方法也访问db.session SQLA
db
对象:
在uuu init_uuuuu.py中
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
app = Flask(__name__)
..
db = SQLAlchemy(app)
现在我在视图中使用db
,并使用sqlalchemy管理db.session的设置和拆卸。然后我在business
中调用一个方法,该方法也访问db.session
SQLAlchemy是否将相同会话授予调用方和被调用方方法,即使它们位于不同的模块中?我担心视图
和业务
在访问db.session时会看到不同的会话
in views.py
from myapp import db
from business import check_dude
@app.route("/csrf_test", methods=['GET'])
def csrf_test_form():
dude = db.session.query(...)
flag = check_dude( dude)
商务英语
from myapp import db
def check_dude( dude):
x = db.session.query(...)
简短回答:你应该没事
这里的代码是关键
db = SQLAlchemy(app)
您正在将db
绑定到Flask的特定app
实例。从技术上讲,您还可以:
db = SQLAlchemy()
后来在其他地方
db.init_app(app)
因此,Flask SQLAlchemy允许您立即或稍后绑定整个应用程序
只要您将db
声明放在\uuu init\uuuu.py
中,我会说您可以安全地在任何模块中重复使用它