| import sqlite3 |
| import os |
| from flask import g |
|
|
| def get_db_path(): |
| |
| if os.path.exists('/data'): |
| return '/data/database.db' |
| return 'database.db' |
|
|
| def get_db(): |
| if 'db' not in g: |
| db_path = get_db_path() |
| |
| os.makedirs(os.path.dirname(db_path), exist_ok=True) |
| g.db = sqlite3.connect(db_path) |
| 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(app): |
| with app.app_context(): |
| db = get_db() |
| cursor = db.cursor() |
| cursor.execute(''' |
| CREATE TABLE IF NOT EXISTS users ( |
| id INTEGER PRIMARY KEY AUTOINCREMENT, |
| name TEXT NOT NULL, |
| score INTEGER DEFAULT 0 |
| ) |
| ''') |
| cursor.execute('SELECT COUNT(*) FROM users') |
| if cursor.fetchone()[0] == 0: |
| cursor.executemany('INSERT INTO users (name, score) VALUES (?, ?)', |
| [('Ahmet', 85), ('Mehmet', 92)]) |
| db.commit() |