python - 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" 所以这意味着我什至找不到文本文件。
解决方案
为了回答这个问题,我用了两件事:
- 我在 app 文件夹中移动了 sqlite3 文件,并使用 '/app/db.sqlite3' 作为路径
- 添加 ; 在我的 SQL 请求结束时
c.execute("SELECT firstName, lastName FROM RESOURCES;")
不知道哪一个解决了这个问题,但现在一切都对我有用。
推荐阅读
- sql-server - 使用 CosmosDB 数据迁移工具将多对多关系映射到字符串数组?
- swift - 如何在 SwiftUI 中为列表创建标题?
- c# - 如何使实体框架不为某些表创建类?
- visual-studio - CMake 中的 Visual Studio 项目引用
- java - 输出的动态 Web 服务器 servlet 问题
- amazon-web-services - AWS VPC Lambda 网络问题
- python - python堆积面积图
- flutter - mapEventToState 不使用 BLOC 模式触发,Flutter
- avaloniaui - Avalonia UI,背景模糊了我在 Render 中绘制的内容
- r - 如何将“更改”变量汇总为总变量?