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