python-3.x - 未加载 YAML 文件中的 Flask 应用程序配置
问题描述
我的应用需要这样的配置 =app.config['LDAP_BASE_DN'] = 'OU=users,dc=example,dc=org'
我想将此配置传递给 YAML 文件,然后让应用使用它。我可以使用加载文件,PyYAML
或者config_with_yaml
问题是我无法将应用程序设置为将其用作配置。它应该基于“ https://exploreflask.com/en/latest/configuration.html ”
我加载我的配置,cfg = config.load("/Users/pjose/Project/dev_maintenance/backend/config.yaml")
然后我设置我的应用程序配置以从 yaml 文件中获取数据,app.config.from_object(cfg)
并通过调用app.config["LDAP_USERNAME"]
它应该设置配置,但它不起作用。
YAML 文件:
LDAP_USERNAME: 'CN=Hermes Conrad,ou=people,dc=planetexpress,dc=com'
我收到此错误:
File "/Users/pjose/Project/dev_maintenance/backend/dev_maintenance/__init__.py", line 32, in <module>
app.config["LDAP_USERNAME"]
KeyError: 'LDAP_USERNAME'
解决方案
我终于可以完成这项工作
问题是我没有将YAML
文件中的值传递给,app.config["LDAP_USERNAME"]
因为在我使用的文档中没有对这个主题的引用,尽管它会通过这样声明来获取值。
因此,有关如何使用YAML
文件设置应用程序配置的示例是:
配置.yaml
SQLALCHEMY_DATABASE_URI: "sqlite://"
SQLALCHEMY_TRACK_MODIFICATIONS : False
然后使用 PyYAML lib 或其他获取解析 yaml 所需的值:
data = yaml_loader.yaml("/Users/pjose/Project/dev_maintenance/backend/config.yaml")
app.config.from_object(data)
app.config['SQLALCHEMY_DATABASE_URI'] = data.setdefault('SQLALCHEMY_DATABASE_URI')
推荐阅读
- c++ - 为什么定义和声明中的 const 参数不匹配会编译?
- node.js - 如何将自定义数据从机器人自适应卡传递到团队任务模块
- botframework - 如何在协作视图而不是新的浏览器窗口中打开 Teams 卡片操作 URL?
- javascript - React-redux 代码不会在 redux dispatch 和 reducer 成功时重新渲染 react 组件
- regex - 为什么这个正则表达式在 grep 中有效,但在 sed 中无效?
- laravel - Laravel Sanctum /登录未找到
- ruby-on-rails - Rails - 在单个迁移文件中创建表和插入数据
- batch-file - 如何检查用户在批处理文件中输入了多少输入?
- python - 如何在字符串(python)中与=一起删除单词?
- c++ - Visual Studio:从可执行文件中获取所有证书颁发者详细信息