Skip to content
Extraits de code Groupes Projets
db.py 612 octets
Newer Older
  • Learn to ignore specific revisions
  • Tom Godfroid's avatar
    Tom Godfroid a validé
    import sqlite3
    import click
    from flask import current_app, g
    from flask.cli import with_appcontext
    
    def get_db():
        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):
        db = g.pop('db', None)
    
        if db is not None:
            db.close()
    
    def init_db():
        db = get_db()
        with current_app.open_resource('schema.sql') as f:
            db.executescript(f.read().decode('utf8'))
    
    def init_app(app):
        app.teardown_appcontext(close_db)