You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Web App中Flask应用环境变量配置失效问题咨询

Flask应用在Azure Web App中配置环境变量的正确方法

问题原因

你当前的代码里load_dotenv()默认会优先加载本地.env文件的变量,如果部署时.env被一并上传到Azure,会覆盖你在Azure配置的环境变量;另外如果Azure的变量名带空格、未保存配置或未重启服务,也会导致配置不生效。

解决方案

1. 调整环境变量加载逻辑

修改代码,让load_dotenv仅在开发环境生效,或者不覆盖系统已存在的环境变量:

from dotenv import load_dotenv
from os import environ

# 仅加载本地.env文件,且不覆盖Azure已配置的系统环境变量
load_dotenv(override=False)

class Config:
    SECRET_KEY = environ.get('SECRET_KEY')

如果要严格区分开发/生产环境,可通过环境变量判断控制加载:

from dotenv import load_dotenv
from os import environ

# 仅在开发环境加载本地.env文件
if environ.get('FLASK_ENV') == 'development':
    load_dotenv()

class Config:
    SECRET_KEY = environ.get('SECRET_KEY')

2. 确保Azure端配置正确

  • 登录Azure Portal,进入你的Web App服务,选择「配置」→「应用程序设置」
  • 检查SECRET_KEY的变量名无前后空格(你的示例中变量名后带空格,会导致无法匹配),值填写准确
  • 配置完成后点击「保存」,然后重启Web App服务(环境变量修改后必须重启才会生效)

3. 验证配置是否生效

可临时添加调试代码(生产环境建议移除),确认环境变量是否被正确读取:

# 临时输出环境变量值用于调试
print("当前SECRET_KEY:", environ.get('SECRET_KEY'))

部署后通过Azure Web App的「日志流」查看输出,确认变量是否正确加载。

内容的提问来源于stack exchange,提问作者newdeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 06:57:04