我正在尝试从数据库检索值,并且从一开始就堆栈,因为在我给出正确的路径后,sqlite3 无法打开数据库文件。
版本 1:
sqlite_file = os.environ.get('DATABASE_URL', 'sqlite:///db.sqlite')
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
版本 2:
sqlite_file = app.config['SQLALCHEMY_DATABASE_URI']
conn = sqlite3.connect(sqlite_file)
c = conn.cursor()
地点:
SQLALCHEMY_DATABASE_URI = os.environ.get('DATABASE_URL', 'sqlite:///db.sqlite')
在这两种情况下都会出现错误
Error on request:
Traceback (most recent call last):
File "/home/ubuntu/workspace/avb/venv/lib/python3.6/site-packages/werkzeug/serving.py", line 209, in run_wsgi
execute(self.server.app)
File "/home/ubuntu/workspace/avb/venv/lib/python3.6/site-packages/werkzeug/serving.py", line 197, in execute
application_iter = app(environ, start_response)
File "/home/ubuntu/workspace/avb/venv/lib/python3.6/site-packages/flask/_compat.py", line 33, in reraise
raise value
File "/home/ubuntu/workspace/avb/app.py", line 222, in <module>
conn = sqlite3.connect(sqlite_file)
sqlite3.OperationalError: unable to open database file
最佳答案
对于sqlite3.connect()
,首先使用实际文件名(例如 example.db)作为参数。
与environ.get()
相同:使用实际的文件名,而不是sqlite:///
地址。
关于python - 我需要 sqlite3 的提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51568990/