Flask - 如何存储所有蓝图之间可访问的值
Flask - How to store a value accessible among all blueprints
如何在 flask
运行 开始之前使用外部程序创建的值?
如果不可能,那么如何在通过 blueprint.register
注册的文件中使用在 Flask 应用程序开始时在 __init__.py
中分配的变量?
例如:
__init__.py
var1 = "SOMETHING"
routes.py
if var1 = "SOMETHING":
call api1
else
call api2
基本上问题是:如何在 __init__.py
和通过 blueprint
.
连接的那些 *.py
文件之间共享变量
通常的做法是为此目的使用环境变量。
在 unix 系统上,您可以使用另一个实用程序轻松设置变量:
export VARIABLE="SOMETHING"
然后您可以通过以下方式在您的代码中访问此类变量:
os.getenv("VARIABLE", "some default value")
因此,您的示例如下所示:
import os
var1 = os.getenv("VARIABLE", "SOMETHING ELSE")
if var1 = "SOMETHING":
call api1
else
call api2
您可以在其文档中找到有关如何将环境变量与 flask 一起使用的更多详细信息:
https://flask.palletsprojects.com/en/1.1.x/config/
使用环境变量的优点是易于在容器化环境中为您的应用程序提供配置,例如在 kubernetes 或 docker 中。
如何在 flask
运行 开始之前使用外部程序创建的值?
如果不可能,那么如何在通过 blueprint.register
注册的文件中使用在 Flask 应用程序开始时在 __init__.py
中分配的变量?
例如:
__init__.py
var1 = "SOMETHING"
routes.py
if var1 = "SOMETHING":
call api1
else
call api2
基本上问题是:如何在 __init__.py
和通过 blueprint
.
*.py
文件之间共享变量
通常的做法是为此目的使用环境变量。 在 unix 系统上,您可以使用另一个实用程序轻松设置变量:
export VARIABLE="SOMETHING"
然后您可以通过以下方式在您的代码中访问此类变量:
os.getenv("VARIABLE", "some default value")
因此,您的示例如下所示:
import os
var1 = os.getenv("VARIABLE", "SOMETHING ELSE")
if var1 = "SOMETHING":
call api1
else
call api2
您可以在其文档中找到有关如何将环境变量与 flask 一起使用的更多详细信息: https://flask.palletsprojects.com/en/1.1.x/config/
使用环境变量的优点是易于在容器化环境中为您的应用程序提供配置,例如在 kubernetes 或 docker 中。