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

Flask开发RESTful博客新增文章时sqlite3无法打开数据库文件报错

问题根因

该报错属于SQLite写入操作权限/路径异常:读操作仅需要数据库文件的读权限,对路径匹配容错性更高;而写入操作需要同时满足「路径正确」和「对数据库文件所在目录有读写权限」两个条件,你当前使用的相对路径配置在Flask运行时可能出现工作目录偏移,导致写入时找不到对应的数据库文件。

解决方案
  • 替换相对路径为绝对路径,彻底解决路径偏移问题
    在代码开头导入os模块,修改数据库配置段如下:
import os
from flask import Flask, render_template, redirect, url_for
# 其余原有导入保持不变

app = Flask(__name__)
##CONNECT TO DB
basedir = os.path.abspath(os.path.dirname(__file__))
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(basedir, 'posts.db')
db = SQLAlchemy(app)
  • 检查权限与文件占用
    • Windows环境:右键点击项目文件夹与posts.db文件,打开属性面板,取消「只读」勾选,给当前登录用户授予读写权限
    • Linux/macOS环境:执行命令给项目目录与数据库文件授权:
      chmod 755 你的项目根目录路径
      chmod 644 你的项目根目录路径/posts.db
      
    • 关闭所有正在打开posts.db的可视化工具、其他进程,避免文件被锁定无法写入
  • 可选验证:如果改完仍报错,可手动执行建表命令确认表结构存在
    在项目目录下打开Python交互终端,执行:
from 你的启动文件名 import db
db.create_all()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 08:36:01