烧瓶配置 class
Flask config class
我正在尝试为我的项目设置配置 类,但我似乎无法弄清楚如何正确导入它们。
项目结构:
-project
-instance
-config.py
-service
-__init__.py
config.py:
class DefaultConfig(object):
DEBUG = True
class ProductionConfig(DefaultConfig):
DEBUG = False
初始化.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,应该根据文档设置配置文件相对于实例目录的路径。现在我正在相对于项目根目录访问它们...
导入后,只需要给class参数。
from project.instance.config import ProductionConfig
app.config.from_object(ProductionConfig)
我正在尝试为我的项目设置配置 类,但我似乎无法弄清楚如何正确导入它们。
项目结构:
-project
-instance
-config.py
-service
-__init__.py
config.py:
class DefaultConfig(object):
DEBUG = True
class ProductionConfig(DefaultConfig):
DEBUG = False
初始化.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,应该根据文档设置配置文件相对于实例目录的路径。现在我正在相对于项目根目录访问它们...
导入后,只需要给class参数。
from project.instance.config import ProductionConfig
app.config.from_object(ProductionConfig)