python - flask 配置类

标签 python flask import configuration importerror

我正在尝试为我的项目设置配置类,但我似乎无法弄清楚如何正确导入它们。

项目结构:

-project
  -instance
    -config.py
  -service
    -__init__.py

配置.py:

class DefaultConfig(object):
    DEBUG = True

class ProductionConfig(DefaultConfig):
    DEBUG = False

init.py:

from flask import Flask

def create_app():
    app = Flask(__name__, instance_relative_config=True)
    app.config.from_object('config.ProductionConfig')    
    return app

要运行我所做的应用程序:

set FLASK_APP=service
set FLASK_ENV=production
FLASK run

站在project文件夹中

这给了我这个错误:

ImportStringError: import_string() failed for 'config'. Possible reasons are:

- missing __init__.py in a package;
- package or module path not included in sys.path;
- duplicated package or module name taking precedence in sys.path;
- missing module, class, function or variable;

Debugged import:

- 'config' not found.

Original exception:

ModuleNotFoundError: No module named 'config'

我的猜测是路径不正确。 我关注了this例如,他们谈论对配置和实例文件夹使用继承。当我读到它时,它很有意义,但我一定是误解了一个不可分割的部分。

编辑:现在可以了。而不仅仅是

app.config.from_object('config.DefaultConfig')

我必须这样做

app.config.from_object('instance.config.DefaultConfig')

我认为这确实令人困惑,因为像我一样将 instance_relative_config 设置为 True ,应该根据文档设置相对于实例目录的配置文件的路径。现在我正在相对于项目根访问它们...

最佳答案

导入后,只需要提供类作为参数即可。

from project.instance.config import ProductionConfig


app.config.from_object(ProductionConfig)

关于python - flask 配置类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51011855/

相关文章:

python - 在eclipse中将python模块添加到pydev会导致导入错误?

javascript - 航点 npm - 错误 : Can't resolve 'waypoint

python - 使用 pythonanywhere 的 Python 脚本出现 XML 解析错误(但不在本地计算机上)

python - 为什么 chr(0x24) + chr(0x84) 的结果在 python 2 和 3 中不同

python - opencv 3.0 python imshow错误

python - Flask JSON 请求为 None

Python导入困惑

python - Python 中的线程/队列

python - 如果通过某些路由访问,请禁用 WTForms CSRF

python - 当 FLASK_ENV=development 时,Werkzeug 不记录 HTTP 请求