|
|
import sqlite3 |
|
|
import os |
|
|
from flask import g |
|
|
|
|
|
def get_db_path(): |
|
|
|
|
|
if os.path.exists('/data'): |
|
|
return '/data/database.db' |
|
|
elif os.path.exists('/home/user_data'): |
|
|
return '/home/user_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() |