Python实战:构建一个简单的图书管理系统

引言

在本文中,我们将通过一个实际的项目——构建一个简单的图书管理系统,来展示Python在实际开发中的应用。这个系统将允许用户添加、删除、搜索和列出图书信息。

环境准备

在开始之前,请确保你的Python环境已经搭建好,并且安装了以下库:

  • sqlite3:Python标准库中的SQLite数据库接口,我们将用它来存储图书数据。

项目结构

我们的图书管理系统将包含以下几个部分:

  1. 数据库操作:用于存储和检索图书信息。
  2. 用户界面:提供命令行界面供用户进行操作。
  3. 业务逻辑:处理用户请求,如添加、删除、搜索图书。

第一步:创建数据库

我们将使用SQLite数据库来存储图书信息。首先,我们需要创建一个数据库和表。

import sqlite3

# 连接到SQLite数据库
# 如果文件不存在,会自动在当前目录创建一个数据库文件
conn = sqlite3.connect('library.db')
cursor = conn.cursor()

# 创建一个表
cursor.execute('''
CREATE TABLE IF NOT EXISTS books (
    id INTEGER PRIMARY KEY,
    title TEXT NOT NULL,
    author TEXT NOT NULL,
    year INTEGER
)
''')

# 提交事务
conn.commit()

# 关闭连接
conn.close()

第二步:实现业务逻辑

我们将定义一些函数来处理添加、删除、搜索和列出图书的逻辑。

def add_book(title, author, year):
    conn = sqlite3.connect('library.db')
    cursor = conn.cursor()
    cursor.execute('INSERT INTO books (title, author, year) VALUES (?, ?, ?)', (title, author, year))
    conn.commit()
    conn.close()

def remove_book(book_id):
    conn = sqlite3.connect('library.db')
    cursor = conn.cursor()
    cursor.execute('DELETE FROM books WHERE id = ?', (book_id,))
    conn.commit()
    conn.close()

def search_books(title):
    conn = sqlite3.connect('library.db')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM books WHERE title LIKE ?', ('%' + title + '%',))
    books = cursor.fetchall()
    conn.close()
    return books

def list_books():
    conn = sqlite3.connect('library.db')
    cursor = conn.cursor()
    cursor.execute('SELECT * FROM books')
    books = cursor.fetchall()
    conn.close()
    return books

第三步:用户界面

我们将创建一个简单的命令行界面,让用户可以与我们的系统交互。

def main_menu():
    while True:
        print("\n图书管理系统")
        print("1. 添加图书")
        print("2. 删除图书")
        print("3. 搜索图书")
        print("4. 列出所有图书")
        print("5. 退出")
        choice = input("请选择一个选项: ")

        if choice == '1':
            title = input("输入图书标题: ")
            author = input("输入作者: ")
            year = input("输入出版年份: ")
            add_book(title, author, year)
            print("图书添加成功!")

        elif choice == '2':
            book_id = input("输入要删除的图书ID: ")
            remove_book(book_id)
            print("图书删除成功!")

        elif choice == '3':
            title = input("输入搜索的图书标题: ")
            books = search_books(title)
            for book in books:
                print(f"ID: {book[0]}, 标题: {book[1]}, 作者: {book[2]}, 年份: {book[3]}")
            if not books:
                print("没有找到图书。")

        elif choice == '4':
            books = list_books()
            for book in books:
                print(f"ID: {book[0]}, 标题: {book[1]}, 作者: {book[2]}, 年份: {book[3]}")

        elif choice == '5':
            break
        else:
            print("无效的选项,请重新输入。")

if __name__ == '__main__':
    main_menu()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值