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

Django启动报sqlite3.OperationalError: no such table: table错误如何解决

报错原因

核心触发原因是 table 属于SQLite的内置保留关键字,你在查询语句中直接将其作为spielplan表的字段名使用时,SQLite会优先将其识别为表声明的关键字,而非你自定义的字段,因此会误解析为你要查询名为table的表,最终抛出表不存在的错误。
你单独运行calculation.py正常,大概率是对应运行环境的SQLite版本对保留关键字的容错规则不同,或者单独运行时的路径配置和Django运行环境不一致。如果确认字段确实叫table,优先解决关键字冲突即可。

修复方案
  • 临时修复:对查询语句中的保留字字段做转义处理,SQLite支持三种转义写法,任选其一即可:
# 写法1:用双引号转义
c.execute("SELECT * FROM spielplan WHERE \"table\" = 8")
# 写法2:用反引号转义
c.execute("SELECT * FROM spielplan WHERE `table` = 8")
# 写法3:用方括号转义
c.execute("SELECT * FROM spielplan WHERE [table] = 8")
  • 长期最优修复:直接修改spielplan表的字段名,将table修改为非保留字的名称,比如table_num、table_order等,从根源避免后续再出现同类关键字冲突问题。
  • 额外排查项:如果转义后仍报错,需检查Django运行时的工作目录,你代码中写的是相对路径'matchprediction.db',要确认该数据库文件存放在Django项目的根目录(即你执行python manage.py runserver命令的目录)下,避免Django启动时找不到对应数据库文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 19:06:07