我正在关注flask homepage
中的官方SQLite教程这是第一个片段:
import sqlite3
from flask import g
DATABASE = '/path/to/database.db'
def get_db():
db = getattr(g, '_database', None)
if db is None:
db = g._database = sqlite3.connect(DATABASE)
return db
@app.teardown_appcontext
def close_connection(exception):
db = getattr(g, '_database', None)
if db is not None:
db.close()
但是当我使用这段代码并进行两次查询数据库的调用时,它在第二次调用时失败:
sqlite3.ProgrammingError:无法在已关闭的数据库上运行。
这是有道理的,因为db连接在第一次调用结束时关闭,然后在第二次调用时没有重新打开,因为db is None
为false。
如何重新打开数据库?
答案 0 :(得分:1)
如果在关闭数据库时从上下文中删除数据库,则会在下次请求时重新打开它。
document.getElementById