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

Azure App Service部署FlaskApp后无法打开SQLite数据库文件求助

解决Azure App Service中Flask应用SQLite无法打开的问题

针对你遇到的本地正常但部署到Azure App Service后提示"Cannot Open the database file"的问题,可按以下步骤解决:

1. 修正跨平台路径问题

你代码中使用的"DBN\\LeaveApp.db"是Windows专属的路径分隔符,而Azure App Service默认采用Linux容器环境,反斜杠\\会被识别为普通字符,导致路径无效。应使用Python的os.path模块生成跨平台的绝对路径:

import os
import sqlite3

# 构造基于应用根目录的绝对路径
app_root = os.path.abspath(os.path.dirname(__file__))
db_directory = os.path.join(app_root, "DBN")
# 确保DBN目录存在(避免部署后目录缺失)
os.makedirs(db_directory, exist_ok=True)
# 生成数据库文件的完整路径
DATABASE = os.path.join(db_directory, "LeaveApp.db")

# 连接数据库
try:
    conn_db = sqlite3.connect(DATABASE)
    print("open database successfully")
    c = conn_db.cursor()
except Exception as e:
    print(f"数据库连接错误: {str(e)}")

2. 验证文件权限与目录存在性

  • 部署后,通过Azure门户的**高级工具(Kudu)**进入/home/site/wwwroot目录,确认DBN文件夹已存在,且LeaveApp.db文件的权限设置为允许应用进程读写(默认部署的文件权限通常满足要求,若手动上传需检查)。
  • SQLite数据库文件需要读写权限,确保App Service的运行进程对目标目录有读写权限。

3. 注意多实例环境限制

如果你的App Service配置了多个运行实例,SQLite文件型数据库会出现并发读写冲突,这种情况下建议改用Azure SQL Database或Azure Cosmos DB等云数据库。若仅单实例运行,上述方案即可解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 18:05:10