【问题标题】:Flask root path for sub package structure子包结构的 Flask 根路径
【发布时间】:2021-04-01 19:43:55
【问题描述】:

我正在寻找有关设置包含多个包(包括烧瓶项目)的 python 存储库的建议。这可能与 python/flask 问题一样是 docker 问题,所以我愿意接受任何可以在这里提供帮助的模式。

我的应用程序结构是这样的(注意:这看起来像命名空间打包,但我配置了setup.py,所以每个包都是它自己的命名空间):

my_app
|--setup.py
|--src/
    |--my_flask_app/
        |--__init__.py
        |--static/
        |--templates/
    |--some_other_module/
        |--__init__.py

我在开发方面遇到了这种模式的问题。基本上我知道我可以用Flask(__name__, root_path='/app/src/my_flask_app)' 覆盖root_path,让它找到合适的源目录。但是,这需要根据我是在 Docker 映像中还是在本地运行它来更改。

例如,如果我打印在本地运行的app.root_path(不修改它),我会看到/Users/username/Documents/my_app/src/my_flask_app。如果我在 docker 中运行它,它必须是 /app/src/my_flask_app 才能正常工作(默认为 /app/my_flask_app 没有修改,这是坏的)。

我的主要问题:是否有一些简单的方法来处理这个问题,构建项目/dockerfile 来实现它,这样我就不必在本地和 docker run 实例之间不断更改它?我应该改用Flask(instance_path=) 吗?

【问题讨论】:

    标签: python docker flask


    【解决方案1】:

    想通了,这似乎对 docker 和本地都有效:

    import os
    from flask import Flask
    
    app = Flask(__name__, root_path=os.path.join(os.getcwd() + '/src/my_flask_app'))
    

    【讨论】:

      猜你喜欢
      • 2011-03-16
      • 2014-10-12
      • 1970-01-01
      • 2012-08-04
      • 2012-04-16
      • 1970-01-01
      • 2017-03-08
      • 1970-01-01
      • 2021-05-16
      相关资源
      最近更新 更多