您好,我对编程和构建我的第一个 Flask 项目相对较新,我无法弄清楚我是否应该更喜欢使用dotenv/load_dotenv或从 config.py 文件中使用它们来访问环境变量。
我知道配置路由更灵活,但我的问题特别与环境变量有关。
这里有最佳实践吗?[我正在构建一个将在外部托管的简单应用程序]
最佳实践规定,任何秘密值都不应该被硬编码到项目中持续存在的任何文件中或被签入源代码管理中。您的配置文件很可能保存在源代码管理中,因此它不应该存储机密,而是从应用程序执行时设置的环境变量加载它们。例如,假设您正在配置 SMTP 中继:
MAIL_PORT是一个不秘密且不太可能更改的值,因此它是在配置文件中设置的良好候选值。
MAIL_PASSWORD是一个秘密值,您不希望将其保存在项目的存储库中,因此应从主机的环境变量中加载它。
在此示例中,您的配置文件可能包含如下所示的条目:
MAIL_PORT = 465
MAIL_PASSWORD = os.environ.get('MAIL_PASSWORD')
Run Code Online (Sandbox Code Playgroud)
除了评估配置值是否是秘密之外,还要考虑该值更改的频率以及进行更改的难度。任何硬编码到配置文件中的内容都需要更改文件并向源代码管理添加新的提交,甚至可能触发完整的 CI/CD 管道过程。如果该值是从环境变量加载的,则可以通过简单地停止应用程序、将新值导出为环境变量并重新启动应用程序来更改该值。
Dotenv 文件只是为了方便地将多个变量分组在一起并自动加载它们以供您的配置读取。文件.env并不总是使用,因为当负责启动或扩展应用程序的另一个系统调用或处理应用程序时,可以手动导出这些值。不要检查.env或.flaskenv文件到源代码管理中。
| 归档时间: |
|
| 查看次数: |
1736 次 |
| 最近记录: |