首页 > 解决方案 > Sqlite 数据库访问:没有这样的表(在 Django 中没有模型)

问题描述

我的计算机上运行着一个 django 和 docker 服务器,并且我创建了一个数据库,其中包含来自该服务器外部的代码。我正在尝试在服务器中访问此数据库('test.sqlite3')。

我确保路径是正确的,并且文件名也是正确的。当我用 DB Browser 打开数据库时,我可以看到表和我的所有数据。但我仍然收到以下错误文本:

OperationalError 没有这样的表:NAMEOFTABLE

当我使用来自另一个 python IDE(spyder)的完全相同的代码时,它工作正常。我猜django发生了一些奇怪的事情?

这是一些代码:

conn = sqlite3.connect("../test.sqlite3")
c = conn.cursor()
c.execute("SELECT firstName, lastName FROM RESOURCES")
conn.close()

(是的,我也尝试过使用绝对路径,我得到了同样的错误。)

还要注意:当我尝试从 django 代码中创建数据库文件和表时,我得到了同样的错误(路径应该是相同的,但在这种情况下仍然会出现错误)。

更新:我的路径似乎有问题,因为我什至无法用 python 打开文本文件,它是绝对路径。因此,如果有人知道为什么那会很棒。

    try:
        f = open("/Users/XXXXX/OneDrive/XXXXX/XXXX/Autres/argon-dashboard-django/toto.txt")
        # Do something with the file
    except IOError:
        q="File not accessible"
    finally:
        f.close()

总是返回以下错误 'f referenced before assignment' 和 q = "File not accesible" 所以这意味着我什至找不到文本文件。

标签: pythonsqlite

解决方案


为了回答这个问题,我用了两件事:

  • 我在 app 文件夹中移动了 sqlite3 文件,并使用 '/app/db.sqlite3' 作为路径
  • 添加 ; 在我的 SQL 请求结束时
c.execute("SELECT firstName, lastName FROM RESOURCES;")

不知道哪一个解决了这个问题,但现在一切都对我有用。


推荐阅读