我正在尝试构建一个基本的烧瓶应用程序以供学习。一切都顺利进行,但是有一个我不明白的问题。在我的run.py文件中,有以下一行:
$noticia
这会将config.py加载到根目录中,该目录包含以下代码:
<form action="{{ route('noticias.update',['id' => $noticia ?? '' $noticia->id]) }}"
method="post" enctype="multipart/form-data">
我的理解是Config包含一些“默认”设置。 devConfig和prodConfig基于Config,因此将始终包含这些值,但每个值将具有不同的env,调试和测试值。尽管我没有收到任何错误并且调试似乎已激活,但是当我运行Flask实例时,它告诉我无论如何我都在生产中运行。
app.config.from_object('config.prodConfig')
我对在终端/环境中设置env变量不感兴趣,我知道该怎么做。我感兴趣的是为什么它不起作用。毕竟,FLASK_ENV指令是有效的指令,应在指示时加载。
我在做什么错了?
答案 0 :(得分:-1)
请牢记Chase的评论,即不要在应用程序中设置FLASK_ENV。从dict
传递config.py
的配置,然后根据应用外部的FLASK_ENV集选择合适的配置,例如与.env
文件。
config.py
class BaseConfig:
...
class DevConfig(BaseConfig):
...
class ProdConfig(BaseConfig):
...
configs = {"development": DevConfig, "production": ProdConfig}
app.py
import os
from flask import FLask
from config import configs
...
app.config.from_object(configs[os.environ.get("FLASK_ENV", "development")])