Die effiziente Verwaltung von Daten ist ein wichtiger Bestandteil jedes Projekts, und SQLite macht diese Aufgabe einfach und unkompliziert. In diesem Tutorial erstellen wir eine kleine Python-Anwendung zum Verwalten einer Bibliotheksdatenbank, die es Ihnen ermöglicht, Bücher mit minimalem Aufwand hinzuzufügen und abzurufen.
Am Ende dieses Artikels wissen Sie, wie Sie:
Beginnen wir mit der Erstellung unserer SQLite-Datenbankdatei und der Definition der Büchertabelle. Jedes Buch verfügt über Felder für Titel, Autor, ISBN, Veröffentlichungsdatum und Genre.
import sqlite3 import os def create_library_database(): """Creates the library database if it doesn't already exist.""" db_name = "library.db" if not os.path.exists(db_name): print(f"Creating database: {db_name}") conn = sqlite3.connect(db_name) cursor = conn.cursor() cursor.execute(''' CREATE TABLE IF NOT EXISTS books ( id INTEGER PRIMARY KEY AUTOINCREMENT, title TEXT, author TEXT, isbn TEXT UNIQUE, published_date DATE, genre TEXT ) ''') conn.commit() conn.close() else: print(f"Database already exists: {db_name}")
Führen Sie diese Funktion aus, um die Datenbank zu initialisieren:
create_library_database()
Dadurch wird in Ihrem Projektverzeichnis eine Datei „library.db“ erstellt, die eine Büchertabelle mit den angegebenen Feldern enthält.
Beim Einfügen von Büchern möchten wir sicherstellen, dass doppelte Einträge (basierend auf dem isbn-Feld) vermieden werden. Anstatt manuell nach Duplikaten zu suchen, verwenden wir die INSERT OR IGNORE-Anweisung von SQLite.
Hier ist die Funktion zum Hinzufügen von Büchern:
def insert_book(book): """ Inserts a book into the database. If a book with the same ISBN already exists, the insertion is ignored. """ conn = sqlite3.connect("library.db") cursor = conn.cursor() try: # Insert the book. Ignore the insertion if the ISBN already exists. cursor.execute(''' INSERT OR IGNORE INTO books (title, author, isbn, published_date, genre) VALUES (?, ?, ?, ?, ?) ''', (book["title"], book["author"], book["isbn"], book["published_date"], book["genre"])) conn.commit() if cursor.rowcount == 0: print(f"The book with ISBN '{book['isbn']}' already exists in the database.") else: print(f"Book inserted: {book['title']} by {book['author']}") except sqlite3.Error as e: print(f"Database error: {e}") finally: conn.close()
Diese Funktion verwendet die SQL-Anweisung INSERT OR IGNORE, um sicherzustellen, dass doppelte Einträge effizient übersprungen werden.
Testen wir die Funktion insert_book, indem wir einige Bücher zu unserer Bibliothek hinzufügen.
books = [ { "title": "To Kill a Mockingbird", "author": "Harper Lee", "isbn": "9780061120084", "published_date": "1960-07-11", "genre": "Fiction" }, { "title": "1984", "author": "George Orwell", "isbn": "9780451524935", "published_date": "1949-06-08", "genre": "Dystopian" }, { "title": "Pride and Prejudice", "author": "Jane Austen", "isbn": "9781503290563", "published_date": "1813-01-28", "genre": "Romance" } ] for book in books: insert_book(book)
Wenn Sie den obigen Code ausführen, werden die Bücher zur Datenbank hinzugefügt. Wenn Sie es erneut ausführen, sehen Sie Meldungen wie:
The book with ISBN '9780061120084' already exists in the database. The book with ISBN '9780451524935' already exists in the database. The book with ISBN '9781503290563' already exists in the database.
Sie können Daten einfach durch Abfragen der Datenbank abrufen. Um beispielsweise alle Bücher in der Bibliothek abzurufen:
def fetch_all_books(): conn = sqlite3.connect("library.db") cursor = conn.cursor() cursor.execute("SELECT * FROM books") rows = cursor.fetchall() conn.close() return rows books = fetch_all_books() for book in books: print(book)
Mit nur wenigen Zeilen Python verfügen Sie jetzt über einen funktionsfähigen Bibliotheksmanager, der Bücher einfügen, Duplikate verhindern und Datensätze mühelos abrufen kann. INSERT OR IGNORE von SQLite ist eine leistungsstarke Funktion, die die Handhabung von Einschränkungen vereinfacht und Ihren Code prägnanter und effizienter macht.
Erweitern Sie dieses Projekt gerne mit Funktionen wie:
Was wirst du als nächstes bauen? ?
Das obige ist der detaillierte Inhalt vonErstellen eines einfachen SQLite-Bibliotheksmanagers in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!