【发布时间】:2021-10-18 07:22:29
【问题描述】:
我很困惑... 我有一个文件“calculation.py”,其中包含以下代码:
conn = sqlite3.connect('matchprediction.db')
c = conn.cursor()
c.execute("SELECT * FROM spielplan WHERE table = 8")
此外,我通过 django 中的本地主机运行该文件以模拟网络服务器。
每当我使用 python manage.py runserver 启动服务器时,我都会收到错误消息:
sqlite3.OperationalError: no such table: table
数据库肯定存在,表本身也存在。已经用数据库浏览器检查过了。 compute.py 有效,因为它从该表中检索数据以执行计算。运行窗口中的输出结果是正确的。
我做错了什么,我该如何解决?
【问题讨论】:
-
您确定它打开的是正确
matchprediction.db吗?由于您没有使用绝对路径,它是相对于服务器的工作目录的,可以是任何东西。 -
好吧,我有两个 matchprediction.db。一个在项目文件夹中(空),一个在 app 文件夹中(包含表格及其内容)。我猜它是正确的 matchprediction.db,因为否则脚本中的计算将不起作用。如果我将鼠标悬停在 matchprediction.py 上,复制路径,浏览到该路径并打开特定的 matchprediction.py,它包含表“spielplan”和我需要的所有数据。
-
您的表
spielplan似乎有一个名为table的列。但在大多数 SQL 方言中,table是保留字(如create table)。