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

发布于 2022-09-02 10:59:07 字数 236 浏览 26 评论 0

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

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

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

呆° 2022-09-09 10:59:07

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

#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-09-09 10:59:07

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

趴在窗边数星星i 2022-09-09 10:59:07

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文