Flask SQLAlchemy连接SQLite数据库时报unable to open database file错误如何解决
问题原因
核心错误出在SQLALCHEMY_DATABASE_URI的配置格式不正确,同时写死绝对路径的方式也不符合你同目录存放数据库的需求。
解决措施
- 删掉URI中多余的斜杠:Windows系统下SQLite的URI前缀只需要3个斜杠
sqlite:///,你当前写的4个斜杠会导致路径解析失败,这是触发报错的直接原因。 - 优先使用相对路径适配同目录部署需求:因为你需要数据库文件和应用存放在同目录,直接把配置改为:
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///database.db'
即可,程序会自动在代码运行的根目录下创建/读取database.db文件。
- 规避相对路径的潜在异常:如果担心运行脚本时工作目录偏移导致找不到文件,可以用os模块动态生成绝对路径,代码修改为:
import os basedir = os.path.abspath(os.path.dirname(__file__)) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'database.db')
这种写法不受运行位置影响,始终会读取当前代码文件所在目录下的database.db。
- 额外权限排查:如果修改路径后仍报错,检查项目所在文件夹是否开启了只读权限,不要将项目放在C盘根目录、Program Files等系统级保护目录下,这类目录默认禁止普通程序写入文件。
内容的提问来源于stack exchange,提问作者cmrussell
相关产品推荐
相关产品推荐

