我有一个小的Flask应用程序,它使用python dotenv库加载我存储在名为.env
的文件中的环境变量。一切都很好,但我最近意识到我实际上从未调用load_dotenv()
方法,所以我不确定它是如何工作的。出于好奇,我试着绕过它:
from dotenv import load_dotenv
)-仍然有效something_else。env
-不工作pip卸载了python dotenv
-不起作用
我正在使用
0.10.3
版本,并且我已经阅读了文档,但没有找到任何有关自动加载环境变量的信息。
关于如何实现这一点的任何想法?我可以看看
python-dotenv
的代码,但我对python很陌生,我希望把时间花在更有用的东西上,但这个东西只是让我烦恼。
我用pip卸载了python dotenv-不工作
Flask
使用 python-dotenv
作为外部依赖项,使用通常位于 .flaskenv
文件附近的项目根目录下的单独 .env
文件从 dotenv
动态加载环境变量
。指:
我甚至删除了导入(从dentev导入load_dotenv) - 仍然有效
因为您已经安装了python dotenv
包,所以不需要显式调用load_dotenv()
Flask,默认情况下,期望找到/查找
和
。flaskenv
文件位于项目的根目录下。但当您出于某种原因决定放置<代码>时。env文件位于项目结构中的某些位置,例如,使用
实例文件夹
&通常用于存储应用程序的敏感数据,如
。env
、configs、logs、sqlite3数据库文件……然后您必须明确指出
的路径。应用程序加载的env
文件如下:
[..]
def create_app(config_object):
"""Create a Flask application using the app factory pattern."""
app = Flask(__name__)
load_config(app, config_object) # here
[..]
return app
def load_config(app, config_object):
"""Load configuration."""
import os
from dotenv import load_dotenv
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
dotenv_path = os.path.join(BASE_DIR, 'var/instance/.env') # just an e.g
if os.path.exists(dotenv_path):
load_dotenv(dotenv_path)
else:
import sys
print('".env" is missing.')
sys.exit(1)
app.config.from_object(config_object)
[..]
我改名了。env to something_else.env -不起作用
.env
是用于存储环境变量
的文件的名称,您不必重命名它。
它将从当前目录或其任何父目录中名为.env的文件或特定路径加载环境变量
请参阅python-dotenv
doc
python-dotenv
是在烧瓶应用程序中加载. env文件的最佳选择之一。
我将其用于烧瓶应用:
from dotenv import load_dotenv
env_file_name = "local.env"
env_path = Path.cwd().joinpath(f"env/{env_file_name}")
load_dotenv(dotenv_path=env_path)
运行< code>load_dotenv()之后,您的应用程序现在已经从。环境文件。所以您可以通过传统的os.getenv("变量名")来访问它们
MAIL_USERNAME = os.getenv('EMAIL_USER')
MAIL_PASSWORD = os.getenv('EMAIL_PASSWORD')
这就是你需要做的一切。干杯!
从2.7.3版本开始,Dubbo会自动从约定key中读取配置,并将配置以Key-Value的形式写入到URL中。 支持的key有以下两个: dubbo.labels,指定一些列配置到URL中的键值对,通常通过JVM -D或系统环境变量指定。 增加以下配置: # JVM -Ddubbo.labels = "tag1=value1; tag2=value2" # 环境变量 DUBBO_LAB
问题内容: 我有一个flask应用程序,该应用程序将不同的配置文件用于开发和生产环境。相关的代码段是这样的: 当我在本地服务器上进行开发时,配置取自config.dev,但是当我将代码推送到heroku时,我想将SPOTPIX_SETTINGS环境变量设置为指向“ config.prod”文件。这可以在heroku命令行客户端中完成,如下所示: 但是,我不知道应该在等号右边写什么,因为我无法将生产
我正在运行一个springboot应用程序,它需要信任我在本地信任库中添加的证书。现在我将它设置在intellij中的运行配置选项下,它有效。ex- 我想知道有没有办法从应用程序设置它。以我们设置spring属性的方式在springboot中创建属性文件?
是否可以在 Websphere 中的应用程序级别设置环境变量? WebSphere服务器可以托管多个应用程序。应用于服务端的任何环境变量都适用于该服务器上的所有应用程序。是否可以创建仅适用于单个应用程序的变量? 例如:假设我们有一个SpreadsheetApp和一个DocsApp在同一台服务器上运行。它们共享一些共同的代码,可以通过一个名为DocStorageLocal的环境变量进行配置。有没有可
我有一个烧瓶应用程序,我在本地运行和测试。每次我对应用程序代码进行更改,这些更改都会反映在开发环境中http://127.0.0.1:8000/只需简单的浏览器刷新。 现在,我必须终止Flask应用程序,然后重新启动该应用程序。我正在使用gunicorn启动Flask应用程序。 不确定更改了什么,但如何配置应用程序,使更改在刷新时生效? 我在init中有下面一行代码。py:
我有一个Jenkins的工作,在那里我执行了一个Groovy脚本。从那个Groovy脚本中,我向另一个应用程序发出POST请求。我的Jenkins服务器和应用程序在不同的机器上。我需要从应用程序的代码中访问Jenkins环境变量。这可能吗? 我尝试使用System.getenv("ENVIRONMUT-VARIABLE-NAME")方法检索环境变量,但返回的结果为null。