数据库
首页 > 数据库> > Python-Flask – 如何在pythonanywhere.com上访问sqlite database.db而不指定其目录?

Python-Flask – 如何在pythonanywhere.com上访问sqlite database.db而不指定其目录?

作者:互联网

我在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/\u0026lt;application\u0026gt;.pythonanywhere.com.error.log中,我得到:

OperationalError: no such table: <table-name>

我在pythonanywhere的主文件夹中找到了一个空的database.db(这意味着应用程序创建了它,对吧?)我创建的database.db是在projects文件夹中

有没有办法指定目录,以便它在我的机器和pythonanywhere上完美地工作而不改变路径?

解决方法:

在您的db文件中,尝试这种方式:

from os import path

ROOT = path.dirname(path.realpath(__file__))

...
db = sqlite3.connect(path.join(ROOT, "database.db"))
...

ROOT总是指向包含数据库的文件目录,而不是直接指出路径,那么您应该为数据库找到正确的位置.

标签:python,database,sqlite3,flask,pythonanywhere
来源: https://codeday.me/bug/20190611/1220832.html