/
Olysha
/
Proekt
Обзор
Документация
Войти
/
Olysha
/
Proekt
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
database.py
65 строк
2 KB
Ольга
first_commit
26 июн 2026, 18:07
26 июн 2026, 18:07
3222b39
Код
Авторство
О чём код?
"""Модуль для работы с базой данных SQLite.""" import sqlite3 from typing import List, Dict, Any DATABASE = 'tasks.db' def get_db_connection(): """Получить соединение с БД.""" conn = sqlite3.connect(DATABASE) conn.row_factory = sqlite3.Row return conn def init_db(): """Создать таблицу tasks, если её нет.""" conn = get_db_connection() conn.execute(''' CREATE TABLE IF NOT EXISTS tasks ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT NOT NULL, completed BOOLEAN DEFAULT 0 ) ''') conn.commit() conn.close() def get_all_tasks() -> List[Dict[str, Any]]: """Получить все задачи, отсортированные по id.""" conn = get_db_connection() tasks = conn.execute('SELECT * FROM tasks ORDER BY id').fetchall() conn.close() return [dict(row) for row in tasks] def add_task(title: str) -> int: """Добавить новую задачу.""" conn = get_db_connection() cursor = conn.execute('INSERT INTO tasks (title) VALUES (?)', (title,)) conn.commit() task_id = cursor.lastrowid conn.close() return task_id def delete_task(task_id: int) -> None: """Удалить задачу по id.""" conn = get_db_connection() conn.execute('DELETE FROM tasks WHERE id = ?', (task_id,)) conn.commit() conn.close() def toggle_task(task_id: int) -> None: """Переключить статус задачи (выполнена / не выполнена).""" conn = get_db_connection() conn.execute(''' UPDATE tasks SET completed = CASE WHEN completed = 0 THEN 1 ELSE 0 END WHERE id = ? ''', (task_id,)) conn.commit() conn.close()