我需要有关sqlite3的提示

时间:2018-07-28 07:12:05

标签: python sqlite

我正在尝试从db检索值,并且我从一开始就处于堆栈状态,因为在给出正确的路径后sqlite3无法打开db文件。

版本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

1 个答案:

答案 0 :(得分:1)

对于sqlite3.connect(),请使用实际文件名(例如example.db)作为参数开始。
environ.get()相同:使用实际的文件名,而不是sqlite:///地址。