您如何在蓝图中引用Flask应用程序工厂中的其他模块?

时间:2019-07-06 11:23:23

标签: python flask

我的业余编码大脑正在尝试与Flask合作。我想为各种查询提供第二个数据库连接(我不想对这些查询使用ORM)。在我的__init__.py文件中,我有此代码...

def create_app(config_name):
    app = Flask(__name__)
    ...
    db = dbase.Database()
    ...

鉴于此,在蓝图中,我如何访问db对象以执行查询和其他与数据相关的事情?

例如,在主页上的main蓝图中,我可以尝试一下...

@main.route('/')
@login_required
def home():
    other_data = db.connection.execute('QUERY GOES HERE')
    return render_template('home.html', data=other_data)

我尝试使用各种导入方法以各种方式引用db对象,但是我遇到了麻烦。感谢您的帮助-谢谢!

1 个答案:

答案 0 :(得分:0)

创建可共享模块,以后您可以在任意位置使用该模块。

示例:

# extensions.py

db = dbase.Database()


# app2/routes.py

from extensions import db
from . import app2

@app2.route('/somewhere/', methods=['GET', 'POST'])
@login_required
def somewhere():
    data = db.q........