当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《Python-Flask-如何在pythonanywhere.com上访问sqlitedatabase.db而不指定其目录?》经验,为你挑选了1个好方法。

我在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/.pythonanywhere.com.error.log,我得到:

OperationalError: no such table: 

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

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



1> lord63. j..:

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

from os import path

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

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

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

推荐阅读
臭小子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有