Rumah > pembangunan bahagian belakang > Tutorial Python > Membina Pengurus Perpustakaan SQLite Mudah dalam Python

Membina Pengurus Perpustakaan SQLite Mudah dalam Python

Patricia Arquette
Lepaskan: 2024-12-10 14:29:08
asal
669 orang telah melayarinya

Building a Simple SQLite Library Manager in Python

Membina Pengurus Perpustakaan SQLite Mudah dalam Python

Mengurus data dengan cekap ialah bahagian penting dalam mana-mana projek, dan SQLite menjadikan tugas ini mudah dan ringan. Dalam tutorial ini, kami akan membina aplikasi Python kecil untuk mengurus pangkalan data perpustakaan, membolehkan anda menambah dan mendapatkan buku dengan usaha yang minimum.

Menjelang akhir artikel ini, anda akan tahu cara:

  • Buat pangkalan data dan jadual SQLite.
  • Sisipkan rekod sambil menghalang pendua.
  • Dapatkan semula data berdasarkan kriteria tertentu.

1. Mencipta Pangkalan Data dan Jadual

Mari mulakan dengan mencipta fail pangkalan data SQLite kami dan mentakrifkan jadual buku. Setiap buku akan mempunyai medan untuk tajuk, pengarang, ISBN, tarikh penerbitan dan genrenya.

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}")
Salin selepas log masuk

Jalankan fungsi ini untuk memulakan pangkalan data:

create_library_database()
Salin selepas log masuk

Ini akan mencipta fail library.db dalam direktori projek anda, yang mengandungi jadual buku dengan medan yang ditentukan.


  1. Memasukkan Buku ke dalam Pangkalan Data

Untuk memasukkan buku, kami ingin memastikan penyertaan pendua (berdasarkan medan isbn) dielakkan. Daripada menyemak pendua secara manual, kami akan menggunakan pernyataan INSERT OR IGNORE SQLite.

Berikut ialah fungsi untuk menambah buku:

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()
Salin selepas log masuk

Fungsi ini menggunakan penyataan INSERT OR IGNORE SQL untuk memastikan entri pendua dilangkau dengan cekap.


 3. Menambah Beberapa Buku

Mari kita uji fungsi insert_book dengan menambahkan beberapa buku pada perpustakaan kami.

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)
Salin selepas log masuk

Apabila anda menjalankan kod di atas, buku akan ditambahkan pada pangkalan data. Jika anda menjalankannya semula, anda akan melihat mesej seperti:

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.
Salin selepas log masuk

4. Mendapatkan Buku

Anda boleh mendapatkan semula data dengan mudah dengan menanyakan pangkalan data. Contohnya, untuk mengambil semua buku dalam perpustakaan:

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)
Salin selepas log masuk

Kesimpulan

Dengan hanya beberapa baris Python, anda kini mempunyai pengurus perpustakaan berfungsi yang boleh memasukkan buku sambil menghalang pendua dan mendapatkan semula rekod dengan mudah. INSERT OR IGNORE SQLite ialah ciri berkuasa yang memudahkan pengendalian kekangan, menjadikan kod anda lebih ringkas dan cekap.

Jangan ragu untuk mengembangkan projek ini dengan ciri seperti:

  • Mencari buku mengikut tajuk atau pengarang.
  • Mengemas kini maklumat buku.
  • Memadamkan buku.

Apa yang akan anda bina seterusnya? ?

Atas ialah kandungan terperinci Membina Pengurus Perpustakaan SQLite Mudah dalam Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:dev.to
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan