python - flask web 部署到 SAE 哪里执行 db.create_all()呢?
PHPz
PHPz 2017-04-17 17:24:42
[Python讨论组]

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

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

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

PHPz
PHPz

学习是最好的投资!

全部回复(3)
怪我咯

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

#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
黄舟

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

怪我咯

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号