不会从run.py以外的文件中读取参数。 run.py是Flask启动脚本
来自run.py:
from flask import Flask
app = Flask(__name__)
print(app.config["PARAMETER"])
从项目中的任何其他python文件返回错误:
KeyError: 'PARAMETER'
如何从启动脚本文件以外的项目中的其他位置读取配置文件?
更新:
阅读配置文件:
app.config.from_pyfile(os.path.join(".", "myconfig.conf"))
myconfig.conf的内容:
PARAMETER = "test"
答案 0 :(得分:1)
我认为你只是错过了加载参数。
如果您对参数进行内联加载,则将其指定为:
from flask import Flask
app = Flask(__name__)
app.config['PARAMETER_1'] = 'test'
assert app.config["PARAMETER_1"] == 'test'
上面的代码有效,现在如何从文件加载类似的数据?
# prepare file
from pathlib import Path
Path("myconfig.conf").write_text("PARAMETER_2 = 'test2'\n")
# load it
app.config.from_pyfile("myconfig.conf")
# test it
assert app.config["PARAMETER_2"] == 'test2'
答案 1 :(得分:0)
创建PARAMETER
后,您无法打印app
密钥,因为其配置对象中没有任何密钥,其名称为PARAMETER
。为了做到这一点,首先创建应用程序,导入一个包含配置的简单对象,然后使用app.config.from_object(Config)
#config.py
class Config(object):
PARAMETER = 'my-parameter-value'
#you can add another keys
SECRET_KEY = os.environ.get('SECRET_KEY') or 'you-will-never-guess'
#__init__.py
from config import Config
app = Flask(__name__);
app.config.from_object(Config)