In dieser Übung wirst du eine einfache ToDo-Liste implementieren, die SQLite als Datenbank verwendet. Du wirst eine DAO-Klasse erstellen, die die CRUD-Operationen (Create, Read, Update, Delete) für die ToDo-Elemente handhabt.
TodoItem
-Klasse mit den Attributen item_id
, title
und is_completed
.@dataclass
-Dekorator für die TodoItem
-Klasse.TodoDao
-Klasse, die die CRUD-Operationen für die TodoItem
-Elemente handhabt.TodoDao
-Klasse:create_table()
: Erstellt die Tabelle, falls sie nicht existiert.add_item()
: Fügt ein neues ToDo-Element zur Datenbank hinzu.get_item()
: Ruft ein ToDo-Element anhand seiner ID ab.get_all_items()
: Ruft alle ToDo-Elemente aus der Datenbank ab.update_item()
: Aktualisiert ein bestehendes ToDo-Element.delete_item()
: Löscht ein ToDo-Element anhand seiner ID.close()
: Schließt die Datenbankverbindung.from todoItem import TodoItem from todoDao import TodoDao def main(): # DAO-Instanz erstellen und Tabelle erstellen dao = TodoDao('todo_example.db') dao.create_table() # Neues ToDo-Element hinzufügen new_item = TodoItem(None, 'Buy milk', False) dao.add_item(new_item) new_item = TodoItem(None, 'Buy cheese', False) dao.add_item(new_item) # ToDo-Element abrufen retrieved_item = dao.get_item(1) if retrieved_item: print( f"Item ID: {retrieved_item.item_id}, Title: {retrieved_item.title}, Is Completed: {retrieved_item.is_completed}") # Alle ToDo-Elemente abrufen all_items = dao.get_all_items() print("All items:") for item in all_items: print(f"Item ID: {item.item_id}, Title: {item.title}, Is Completed: {item.is_completed}") # ToDo-Element aktualisieren retrieved_item.is_completed = True is_updated = dao.update_item(retrieved_item) print(f"Was the item updated? {is_updated}") # ToDo-Element löschen is_deleted = dao.delete_item(1) print(f"Was the item deleted? {is_deleted}") # Verbindung schließen dao.close() # Ausführung der Hauptlogik if __name__ == '__main__': main()
import sqlite3 from todoItem import TodoItem # TODO: Implementiere die TodoDao-Klasse für CRUD-Operationen class TodoDao: ...
from dataclasses import dataclass # TODO: Implementiere die TodoItem-Klasse mit @dataclass @dataclass class TodoItem: ...
TodoItem
-Klasse. Verwende den @dataclass
-Dekorator.TodoDao
-Klasse und implementiere die Methode create_table()
.add_item()
, get_item()
, get_all_items()
, update_item()
und delete_item()
zur TodoDao
-Klasse hinzu.Die Abgabe der Lösung erfolgt als Push in das persönliche GitHub-Repository.
GitHub Repository https://github.com/templates-python/m323-lu06-a03-dao
Lernende am BZZ müssen den Link zum GitHub Classroom Assignment verwenden