Heim > Backend-Entwicklung > Python-Tutorial > Erstellen eines einfachen SQLite-Bibliotheksmanagers in Python

Erstellen eines einfachen SQLite-Bibliotheksmanagers in Python

Patricia Arquette
Freigeben: 2024-12-10 14:29:08
Original
671 Leute haben es durchsucht

Building a Simple SQLite Library Manager in Python

Erstellen eines einfachen SQLite-Bibliotheksmanagers in Python

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:

  • Erstellen Sie eine SQLite-Datenbank und -Tabelle.
  • Fügen Sie Datensätze ein und vermeiden Sie gleichzeitig Duplikate.
  • Daten basierend auf bestimmten Kriterien abrufen.

1. Erstellen der Datenbank und Tabelle

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}")
Nach dem Login kopieren

Führen Sie diese Funktion aus, um die Datenbank zu initialisieren:

create_library_database()
Nach dem Login kopieren

Dadurch wird in Ihrem Projektverzeichnis eine Datei „library.db“ erstellt, die eine Büchertabelle mit den angegebenen Feldern enthält.


  1. Bücher in die Datenbank einfügen

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()
Nach dem Login kopieren

Diese Funktion verwendet die SQL-Anweisung INSERT OR IGNORE, um sicherzustellen, dass doppelte Einträge effizient übersprungen werden.


 3. Einige Bücher hinzufügen

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)
Nach dem Login kopieren

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.
Nach dem Login kopieren

4. Bücher abrufen

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)
Nach dem Login kopieren

Abschluss

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:

  • Suche nach Büchern nach Titel oder Autor.
  • Buchinformationen werden aktualisiert.
  • Bücher löschen.

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage