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

Azure部署Flask应用用load_dotenv连Azure SQL出现pyodbc超时错误

排查步骤及解决方案

1. 核心问题:.env文件未同步到部署环境

你将.env加入.gitignore后,该文件不会被提交到代码库,也不会被打包进Azure部署包/Docker镜像中,生产环境不存在.env文件,所有os.getenv()调用都会返回None,拼接出的连接字符串缺少必填参数,直接导致连接超时。

解决方法:

不要将敏感配置放在.env中部署到生产环境,直接在Azure应用服务的「配置」->「应用设置」中添加以下4个环境变量:

  • SERVER
  • DB_NAME
  • DB_USER
  • PASSWORD
    Azure会自动将这些配置注入到应用运行环境中,os.getenv()可直接读取,无需依赖.env文件。

2. 检查load_dotenv()调用缺失

如果本地运行时依赖IDE或终端自动加载了.env变量,但代码中未显式声明加载逻辑,会导致部署环境无法读取到变量。

解决方法:

在main.py文件最开头添加如下代码:

from dotenv import load_dotenv
# 加载.env文件,生产环境无该文件时也不会抛出异常
load_dotenv()

该调用仅在本地开发时生效,生产环境会优先读取系统注入的环境变量,不会冲突。


3. 连接字符串格式校验

你使用textwrap.dedent拼接字符串时,可能产生多余的换行或空格导致连接字符串格式错误。可在本地开发时打印拼接后的连接字符串,确认各参数符合ODBC要求的格式,无多余不可见字符。


4. 辅助排查项

如果上述配置都正确,可确认Azure SQL的防火墙设置中已开启「允许Azure服务和资源访问此服务器」开关,避免网络访问被拦截。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 12:54:01