在应用程序上下文之外创建数据库

 huanghunlaoren_619 发布于 2023-01-11 14:53

我有一个像这样的应用工厂

db = SQLAlchemy()

def create_app(environment):
  app = Flask(__name__)
  app.config.from_object(config[environment])

  db.init_app(app)
  # ... etc

  return app

然后,我有一个脚本,它在应用程序的上下文之外提取CSV.这个脚本是一个每x小时运行一次的cron

我想以某种方式更新sqlite数据库应用程序正在使用.这可能吗?

2 个回答
  • 我知道这个问题已得到解答,但您也可以使用以下with声明:

    from my_package import create_app
    
    app = create_app(my_envrionment)
    
    with app.app_context():
        # your code here
    

    我觉得这看起来有点干净:)

    2023-01-11 14:55 回答
  • Flask-SQLAlchemy只需要一个应用程序上下文来操作.您可以手动创建应用程序上下文.

    app = create_app(env)
    ctx = app.app_context()
    ctx.push()
    
    # your code here
    
    ctx.pop()
    

    这是来自这里和这里的文档.

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