我在https://www.pythonanywhere.com上使用flask和sqlite3 .在我自己的机器中,当我测试应用程序时,我不需要指定数据库的目录,例如db = sqlite3.connect("database.db")
它完美地工作.在pythonanywhere上,我需要将其更改为,db = sqlite3.connect("/path/to/database.db")
因为当我不更改时,我将收到此错误:
Internal Server Error The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.
在/var/log/
,我得到:
OperationalError: no such table:
我database.db
在pythonanywhere的主文件夹中找到一个空(这意味着应用程序创建它,对吧?)database.db
我创建的是在projects文件夹中
有没有办法指定目录,以便它在我的机器和pythonanywhere上完美地工作而不改变路径?
在您的db
文件中,尝试这种方式:
from os import path ROOT = path.dirname(path.realpath(__file__)) ... db = sqlite3.connect(path.join(ROOT, "database.db")) ...
不是直接指出路径,而是ROOT
始终指向包含该文件的文件的目录db
,那么您应该为数据库获取正确的位置.