如何在配置文件中设置 FLASK_ENV?

新手上路,请多包涵

长话短说

我不想每次登录时 export 我的变量。我希望它们在我的配置中。

从文档

建议使用上述环境变量。虽然可以在您的配置或代码中设置 ENV 和 DEBUG,但强烈建议不要这样做。

无论如何我该怎么做?这怎么可能’?

更多 - 我试过的

我有一个 flask.cfgFLASK_ENV='development' 。我运行 flask run 并打印 development 。但是生产服务器已经启动了。 终端 它忽略以下内容:

 app.config.from_pyfile("flask.cfg")

print(f"{app.config['ENV']}") => development

这是一个无关紧要的个人项目。这就是为什么我为了方便而忽略了最佳实践。

原文由 Mote Zart 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 979
2 个回答

这个怎么样:安装 python-dotenv 包,在你的项目根文件夹中创建一个 .flaskenv 文件并添加,例如,这个:

 FLASK_APP=app.py (or whatever you named it)
FLASK_ENV=development (or production)

救。 烧瓶运行

原文由 no use for a name 发布,翻译遵循 CC BY-SA 4.0 许可协议

2020 年 3 月更新:

根据 Flask 开发 人员的说法,您不能再这样做了:

ENV 和 DEBUG 配置值很特殊,因为如果在应用程序开始设置后更改,它们的行为可能会不一致。为了可靠地设置环境和调试模式,Flask 使用了环境变量。

环境用于向 Flask、扩展和其他程序(如 Sentry)指示 Flask 正在运行的上下文。它由 FLASK_ENV 环境变量控制,默认为生产环境。

将 FLASK_ENV 设置为 development 将启用调试模式。 flask run 将在调试模式下默认使用交互式调试器和重新加载器。要从环境中单独控制它,请使用 FLASK_DEBUG 标志。

要将 Flask 切换到开发环境并启用调试模式,请设置 FLASK_ENV:

 > $ export FLASK_ENV=development
> $ flask run (On Windows, use set instead of export.)

建议使用上述环境变量。虽然可以在您的配置或代码中设置 ENV 和 DEBUG,但强烈建议不要这样做。它们不能被 flask 命令提前读取,一些系统或扩展可能已经根据以前的值配置了自己。

原文由 Bogdan Doicin 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题