python - 如何从单独的机密配置文件访问由 wfastcgi 设置的环境变量
问题描述
我已按照本指南从 IIS 提供 Flask 应用程序:
我目前的源代码如下:
我的应用程序.py:
from flask import Flask
import os
app = Flask(__name__)
@app.route("/")
def hello():
return "PYTHONPATH: {0}".format(os.getenv('PYTHONPATH'))
if __name__ == "__main__":
app.run()
还有我的 web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appSettings file='C:\app_secrets\secrets.config' >
<add key="PYTHONPATH" value="C:\inetpub\wwwroot\MyApp" />
<add key="WSGI_HANDLER" value="MyApp.app" />
</appSettings>
</configuration>
我遵循互联网上许多地方的建议,通过在源代码之外有一个单独的 appSettings 文件并在 web.config 中引用它来填充秘密,所以“C:\app_secrets\secrets.config”看起来像这个:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appSettings>
<add key="SECRETTHING" value="THING" />
</appSettings>
</configuration>
我发现虽然 web.config<add key=...
位按我预期的那样工作,并且我可以在 MyApp.py 中使用它们访问它们,但在 secrets.config 中os.getenv()
添加的密钥却不是这样;将行更改return "PYTHONPATH: {0}".format(os.getenv('PYTHONPATH'))
为return "PYTHONPATH: {0}".format(os.getenv('SECRETTHING'))
返回“None”而不是“THING”。
为什么我无法访问这些 envars?
解决方案
推荐阅读
- python - _tkinter.TclError:预期的整数,但得到“衬线”
- sql-server - Filepicker VBA选择文件并存储文件名不起作用
- android - 单击任何按钮时应用程序停止工作,错误说它找不到方法
- java - 在 intelij 中通过数据库模式映射实体对象会生成错误的注释和关系
- html - 切换到移动设备时,HTML 正文未占用全宽
- css - 安装 Bootstrap(在 Angular 上,但有错误)
- javascript - 单击子元素时反应获取父元素的状态/数据
- arrays - Golang 从 postgresql 函数获取值,该函数返回一个 int 但也接收一个字符串数组
- php - 如何在 Yii2 的 ActiveField 的表单组 div 中添加 css 类?
- c# - Directory.CreateDirectory 引发异常,但仅适用于 .NET 核心?