58 lines
1.8 KiB
Python
58 lines
1.8 KiB
Python
import sqlite3
|
|
from datetime import datetime
|
|
|
|
DIR = "/Users/mac/myfirstprogramm/addons/todo/todo.db" # лучше указать полный путь
|
|
|
|
# создаём подключение
|
|
db = sqlite3.connect(DIR)
|
|
cursor = db.cursor()
|
|
|
|
# создаём таблицу, если её ещё нет
|
|
cursor.execute("""
|
|
CREATE TABLE IF NOT EXISTS tasks (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
who INTEGER NOT NULL,
|
|
task TEXT NOT NULL,
|
|
due_date TEXT NOT NULL
|
|
)
|
|
""")
|
|
db.commit()
|
|
|
|
# функция для добавления задачи
|
|
def add_task(who: int, task: str, due_date: str):
|
|
cursor.execute(
|
|
"INSERT INTO tasks (who, task, due_date) VALUES (?, ?, ?)",
|
|
(who, task, due_date)
|
|
)
|
|
db.commit()
|
|
|
|
# функция для получения всех задач пользователя
|
|
def get_tasks(who: int):
|
|
cursor.execute("SELECT id, task, due_date FROM tasks WHERE who = ?", (who,))
|
|
return cursor.fetchall()
|
|
|
|
# функция для удаления всех задач пользователя
|
|
def delete_tasks_by_who(who: int):
|
|
cursor.execute("DELETE FROM tasks WHERE who = ?", (who,))
|
|
db.commit()
|
|
|
|
# пример использования
|
|
if __name__ == "__main__":
|
|
# добавляем задачи
|
|
add_task(123456789, "Сделать бота", datetime.now().strftime("%d.%m.%Y %H:%M:%S"))
|
|
add_task(123456789, "Проверить базу", datetime.now().strftime("%d.%m.%Y %H:%M:%S"))
|
|
|
|
print("Задачи до удаления:")
|
|
tasks = get_tasks(123456789)
|
|
for t in tasks:
|
|
print(t)
|
|
|
|
# удаляем все задачи пользователя
|
|
delete_tasks_by_who(123456789)
|
|
|
|
print("\nЗадачи после удаления:")
|
|
tasks = get_tasks(123456789)
|
|
for t in tasks:
|
|
print(t)
|
|
|