使用工厂函数方法时如何获取应用程序的数据库实例?

时间:2018-09-07 09:18:54

标签: python database flask flask-sqlalchemy

我正在使用工厂函数方法来创建应用程序实例。这是代码:

#factory.py

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

db = SQLAlchemy()


def create_app(config_class=Config):
    app = Flask(__name__)
    app.config.from_object(Config)

    db.init_app(app)

return app

当我使用这种方法并且该应用程序还没有数据库时。如何获得应用程序的db实例以使用db.create_all()函数创建数据库架构? 我知道flask-migrate扩展名可以在不存在的情况下进行设置,但想知道使用此方法时可以如何进行。 当我导入数据库实例并使用db.create_all()时,会出现以下错误:

'No application found. Either work inside a view function or push'
RuntimeError: No application found. Either work inside a view function or push an application context.

即使这种方法也不起作用:

from factory import create_app, db
app = create_app()
with app.app_context():
    db.create_all()

即使经过大量谷歌搜索,我仍无法找到任何解决方案。怎么了?

0 个答案:

没有答案