Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用app.config.from_envvar?(烧瓶)_Python_Flask - Fatal编程技术网

Python 如何使用app.config.from_envvar?(烧瓶)

Python 如何使用app.config.from_envvar?(烧瓶),python,flask,Python,Flask,如何使用app.config.from_envvar() 我已经看过Flask doc并搜索了这个主题,我都知道要这样做 DATABASE = 'flaskr.db' DEBUG = True SECRET_KEY = 'development key' app = Flask(__name__) app.config.from_envvar(’FLASKR_SETTINGS’, silent=True) 这会从FLASKR_设置加载配置吗?程序如何知道什么是烧瓶设置?我是否也应该这样设置(

如何使用app.config.from_envvar()

我已经看过Flask doc并搜索了这个主题,我都知道要这样做

DATABASE = 'flaskr.db'
DEBUG = True
SECRET_KEY = 'development key'

app = Flask(__name__)
app.config.from_envvar(’FLASKR_SETTINGS’, silent=True)
这会从FLASKR_设置加载配置吗?程序如何知道什么是烧瓶设置?我是否也应该这样设置(配置文件的路径)?:

将前3行移动到该文件中,当我运行该文件时,它将被加载到


而我只选择使用这些权利?在app.config.from_envvar(这一个用于从外部文件加载配置)或app.config.from_对象(name)之间(这一个将在文件中加载配置)?我理解正确吗?

这将从环境变量指示的文件加载烧瓶配置

此处的文档中包括了这一点:


envvar
是环境变量的缩写。如果您使用的是基于Linux的操作系统(Ubuntu、Mac等),那么当您运行普通shell时,您可能正在运行
bash
。要在bash中设置环境变量,只需执行以下操作:

$ SOME_NAME=some_value
因此,对于通过
FLASKR\u设置
环境变量配置自身的Flask应用程序,您可以执行以下操作:

$ FLASKR_SETTINGS=/path/to/settings/file.ext
$ python your_script.py
Flask所做的只是像导入普通Python文件一样导入该文件,并取出文件中每个仅大写的名称(任何其他case组合都将被忽略)

来自_object的也是如此-事实上,来自_object的也可以采用可导入字符串:

最后,请注意,您不必只有一个配置调用-可以使用多个调用:

app.config.from_object("your.package.default.config")
app.config.from_envvar("YOUR_APPS_ENVVAR", silent=True)

所以在我的例子中,如果我只从外部使用配置,我只需要app.config.from_envvar(),而不必使用app.config.from_object()对吗?你只是告诉我多个电话是可选的?包含配置代码的文件必须是.py?还是外线?我看到文件上写着。cfg o_o@团队-正确,您可以根据需要使用来自\u object的
和来自\u envvar
的任意组合。至于扩展名,它可以是你想要的任何东西(
.py
.cfg
。我刚做了这个,现在就做了
…它们都可以用)。我键入了。venv/bin/activate然后导出FLASKR_CONFIG=Users/Team/desktop/flask\project/FLASKR/CONFIG.py,然后是python FLASKR.py,然后是python FLASKR.py,那么它有错误语法错误:第8行的文件FLASKR.py中的非ASCII字符'\xe2',但没有声明编码;详细信息请参见(venv)Tammarats MacBook Air:flaskr Team$我找到了它,它是关于使用“”而不是“”的,所以他们为什么在OMG--“非常感谢肖恩·维埃拉先生rock@Team-看起来PDF有适当的卷曲引号,而不是Python字符串需要使用的单引号撇号。正如您所发现的,用撇号或双引号替换它可以解决问题:-)
$ FLASKR_SETTINGS=/path/to/settings/file.ext
$ python your_script.py
app.config.from_object("importable.configuration")
app.config.from_object("your.package.default.config")
app.config.from_envvar("YOUR_APPS_ENVVAR", silent=True)