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

 eyk0256912 发布于 2022-10-30 00:15

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

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

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

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

    2022-10-31 20:21 回答
  • 推荐Flask-Migrate,数据库迁移使用,少走弯路

    2022-10-31 20:22 回答
  • 我找到一种方式,不算好,不过可以用。

    #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
    2022-10-31 20:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有