Spaces:
Runtime error
Runtime error
import sqlite3 | |
import click | |
from flask import current_app | |
from flask import g | |
def get_db(): | |
"""Connect to the application's configured database. The connection | |
is unique for each request and will be reused if this is called | |
again. | |
""" | |
if "db" not in g: | |
g.db = sqlite3.connect( | |
current_app.config["DATABASE"], detect_types=sqlite3.PARSE_DECLTYPES | |
) | |
g.db.row_factory = sqlite3.Row | |
return g.db | |
def close_db(e=None): | |
"""If this request connected to the database, close the | |
connection. | |
""" | |
db = g.pop("db", None) | |
if db is not None: | |
db.close() | |
def init_db(): | |
"""Clear existing data and create new tables.""" | |
db = get_db() | |
with current_app.open_resource("schema.sql") as f: | |
db.executescript(f.read().decode("utf8")) | |
def init_db_command(): | |
"""Clear existing data and create new tables.""" | |
init_db() | |
click.echo("Initialized the database.") | |
def init_app(app): | |
"""Register database functions with the Flask app. This is called by | |
the application factory. | |
""" | |
app.teardown_appcontext(close_db) | |
app.cli.add_command(init_db_command) | |