首页 > flask web 部署到 SAE 哪里执行 db.create_all()呢?

flask web 部署到 SAE 哪里执行 db.create_all()呢?

是这样的,Flask web 开发提到的数据库创建,用的是执行命令行

python manage shell
from manage import db
db.crate_all()

很多人部署,用的是导入SQL文件的取巧办法。
我想知道,如何在代码里实现数据库的创建呢?
这句代码该放在哪里?
manage.py
__init__.py


我个人是用SQL导入的,看到这个问题,想到一个方案:利用before_first_reques请求钩子函数,在处理第一个请求之前执行创建表的工作。


推荐Flask-Migrate,数据库迁移使用,少走弯路


我找到一种方式,不算好,不过可以用。

#app\__init__.py对应位置加入
def create_app(config_name):
    app = Flask(__name__)
    ...
    db.init_app(app)
    with app.app_context():
        # Extensions like Flask-SQLAlchemy now know what the "current" app
        # is while within this block. Therefore, you can now run........
        db.create_all()
    return app
【热门文章】
【热门文章】