教你用python实现一个无界面的小型图书管理系统

yizhihongxing

教你用 Python 实现一个无界面的小型图书管理系统

简介

本文将介绍如何用 Python 实现一个无界面的小型图书管理系统。该图书管理系统包括以下功能:

  • 显示所有图书
  • 按照图书名称搜索图书
  • 按照图书作者搜索图书
  • 借出图书
  • 归还图书

准备工作

在开始实现前,需要先安装 Python3 和相关模块。本文采用的是 SQLite 数据库,需要安装 SQLite3 模块。

安装方式:

  1. 安装 Python3(略)

  2. 安装 SQLite3 模块

pip install pysqlite3

数据库设计

在实现前,需要先设计数据库。本文使用了一张表格 books,该表格包括以下字段:

字段名 类型 描述
id INTEGER 图书ID
name TEXT 图书名称
author TEXT 图书作者
borrowed INTEGER 是否被借出,0 表示未借出,1 表示已借出

设计 SQL 语句如下:

CREATE TABLE IF NOT EXISTS books (
    id INTEGER PRIMARY KEY, 
    name TEXT, 
    author TEXT,
    borrowed INTEGER
);

实现步骤

创建数据库连接

首先,需要创建数据库连接,这里使用 SQLite3 连接,连接方式如下:

import sqlite3

conn = sqlite3.connect('books.db')

创建表格

接下来,需要创建表格,根据刚刚设计的 SQL 语句,在 Python 中实现如下:

cursor = conn.cursor()
cursor.execute('''CREATE TABLE IF NOT EXISTS books (
                    id INTEGER PRIMARY KEY,
                    name TEXT,
                    author TEXT,
                    borrowed INTEGER
                )''')

添加图书

然后,需要实现添加图书的功能。添加图书需要用户输入图书的名称和作者,然后将图书插入到数据库中。实现示例如下:

def insert_book(conn, name, author):
    cursor = conn.cursor()
    cursor.execute("INSERT INTO books (name, author, borrowed) VALUES (?, ?, ?)", (name, author, 0))
    conn.commit()

显示所有图书

接着,需要实现显示所有图书的功能。实现示例如下:

def display_all_books(conn):
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM books")
    rows = cursor.fetchall()
    for row in rows:
        print(row)

根据图书名称搜索图书

实现搜索功能。用户输入图书名称后,根据图书名称搜索图书,并将结果显示出来。实现示例如下:

def search_books_by_name(conn, name):
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM books WHERE name=?", (name,))
    rows = cursor.fetchall()
    for row in rows:
        print(row)

根据图书作者搜索图书

同样地,实现搜索功能。用户输入图书作者后,根据图书作者搜索图书,并将结果显示出来。实现示例如下:

def search_books_by_author(conn, author):
    cursor = conn.cursor()
    cursor.execute("SELECT * FROM books WHERE author=?", (author,))
    rows = cursor.fetchall()
    for row in rows:
        print(row)

借出图书

实现借出功能。用户输入借出的图书 ID ,将 borrowed 字段置为 1。实现示例如下:

def borrow_book(conn, id):
    cursor = conn.cursor()
    cursor.execute("UPDATE books SET borrowed=? WHERE id=?", (1, id,))
    conn.commit()

归还图书

最后,实现归还功能。用户输入归还的图书 ID ,将 borrowed 字段置为 0。实现示例如下:

def return_book(conn, id):
    cursor = conn.cursor()
    cursor.execute("UPDATE books SET borrowed=? WHERE id=?", (0, id,))
    conn.commit()

总结

至此,一个无界面的小型图书管理系统就实现了。在实现该系统时,我们主要涉及了 Python 语言基础,SQLite3 数据库操作,以及实现命令行界面。

以上实现方式仅供参考,实际情况可能因需求不同而略有差异。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:教你用python实现一个无界面的小型图书管理系统 - Python技术站

(0)
上一篇 2023年5月30日
下一篇 2023年5月30日

相关文章

  • Python3监控windows,linux系统的CPU、硬盘、内存使用率和各个端口的开启情况详细代码实例

    下面就来详细讲解如何实现Python3监控Windows和Linux系统的CPU、硬盘、内存使用率和各个端口的开启情况的完整攻略。 一、监控CPU、内存、硬盘 1. 安装psutil模块 psutil是一个跨平台的库,可以方便地实现对系统的各项性能指标的获取,如CPU、内存、硬盘等。在Python3中使用pip安装即可。 pip3 install psuti…

    python 2023年5月30日
    00
  • 检查字节是否在 Python 中生成有效的 ISO 8859-15(拉丁文)

    【问题标题】:Check if bytes result in valid ISO 8859-15 (Latin) in Python检查字节是否在 Python 中生成有效的 ISO 8859-15(拉丁文) 【发布时间】:2023-04-07 07:03:01 【问题描述】: 我想测试我从文件中提取的一串字节是否产生有效的ISO-8859-15 编码文本…

    Python开发 2023年4月8日
    00
  • Python中FTP服务与SSH登录暴力破解的实现

    Python中FTP服务暴力破解的实现 首先,我们需要使用Python中的ftplib库来连接FTP服务器。具体实现方法如下: import ftplib def ftp_login(host, username, password): try: ftp = ftplib.FTP(host) ftp.login(username, password) ftp…

    python 2023年6月2日
    00
  • pycharm实现print输出保存到txt文件

    让我来详细讲解一下”pycharm实现print输出保存到txt文件”的完整攻略。 确定文件保存路径 首先需要在pycharm中确定文件保存的路径。可以使用以下代码来设置文件路径: import os SAVE_PATH = os.path.join(os.getcwd(), ‘result.txt’) 其中os.getcwd()获取当前文件夹路径,在其后面…

    python 2023年6月5日
    00
  • Python教程按照字典的键或值进行排序方法解析

    Python可以使用sorted方法来对字典进行排序。sorted方法返回一个由排序后的键、值组成的列表。 按照字典键排序 对字典按照键进行排序方法如下。使用sorted方法,对字典test_dict的键进行排序。 test_dict = {‘a’: 3, ‘b’: 4, ‘c’: 1, ‘d’: 2} sorted_dict = sorted(test_d…

    python 2023年5月13日
    00
  • 使用 python 检索 MusicBrainz 指纹

    【问题标题】:Retrieving MusicBrainz fingerprint with python使用 python 检索 MusicBrainz 指纹 【发布时间】:2023-04-05 02:32:01 【问题描述】: 我很难找到从给定歌曲中检索音频指纹数据的方法。我之前用 MusicBrainz 标记了这些歌曲,现在我想直接从音频文件中读取它。…

    Python开发 2023年4月6日
    00
  • Python爬虫获取基金基本信息

    Python爬虫获取基金基本信息 本攻略将介绍如何使用Python爬虫获取基金基本信息。我们将使用Python的requests库和BeautifulSoup库来获取和解析网页内容,使用pandas库来处理数据。 获取网页内容 我们可以使用Python的requests库和BeautifulSoup库来获取和解析网页内容。以下是一个示例代码,用于获取天天基金…

    python 2023年5月15日
    00
  • Python 如何展开嵌套的序列

    展开嵌套的序列就是将一个多层嵌套的序列转化为一个简单的序列。在 Python 中,要展开嵌套序列,可以使用递归函数和迭代器来实现。 递归函数 递归函数是指在函数内部直接或间接调用函数本身的函数。通过递归函数实现展开嵌套的序列,可以使用以下步骤: 创建一个函数,传入一个序列作为参数。 python def flatten(sequence): pass 在函数…

    python 2023年6月3日
    00
合作推广
合作推广
分享本页
返回顶部