GUI开发丨基于Tkinter+SQLite3的智能图书管理系统

发布时间:2024年01月16日

写在前面

本期内容:基于Tkinter+SQLite3的智能图书管理系统

实验需求:

  • tkinter
  • sqlite3

项目下载地址:https://download.csdn.net/download/m0_68111267/88744196

实验介绍

本期博主将使用Tkinter和SQLite3技术实现一个GUI版智能图书管理系统,主要考察Python的GUI界面开发以及数据库的基本操作。

  • Tkinter:Tkinter是Python的一个标准库,用于创建图形用户界面(GUI)。它提供了一系列的工具和控件,可以用来设计和开发交互式的应用程序。Tkinter是一个跨平台的工具包,可以在不同的操作系统上运行。它具有简单易用的特点,使得开发者能够快速地创建界面并添加各种功能。Tkinter提供了一系列的方法和属性,用于控制界面的布局和样式,并且支持用户输入和交互。它还支持多线程和网络编程,可以实现复杂的应用程序。
  • SQLite3:SQLite3是一种轻量级的嵌入式关系数据库管理系统。它使用磁盘文件作为数据库存储,不需要单独的服务器进程,可以直接运行在应用程序中。SQLite3支持标准的SQL语法,并提供了丰富的SQL命令和函数,可以实现数据的增删改查操作。它具有快速、可靠和稳定的特点,支持事务处理和多线程访问。SQLite3适用于小型项目和个人开发,可以快速搭建和部署,同时也可以作为大型项目的局部数据存储解决方案。

实验内容

SQLite3数据库

编写数据库文件"db.py",实现对sqlite3数据库的基本操作:

  • init():创建book表,存放书籍信息
  • insert():插入图书信息
  • view():查看图书信息
  • search():查询图书信息
  • delete():删除图书信息
  • update():更新图书信息
"""
作者:Want595
微信号:Want_595
公众号:Want595
"""
import sqlite3

class Database:
    def __init__(self, db):
        self.conn = sqlite3.connect(db)
        self.cur = self.conn.cursor()
        self.cur.execute("create table if not exists book(id integer primary key, title text, author text, year integer, isbn integer)")
        self.conn.commit()

    def insert(self, title, author, year, isbn):
        self.cur.execute("insert into book values(null,?,?,?,?)", (title, author, year, isbn))
        self.conn.commit()

    def view(self):
        self.cur.execute("select * from book")
        rows = self.cur.fetchall()
        return rows

    def search(self, title="", author="", year="", isbn=""):
        self.cur.execute("select * from book where title=? or author=? or year=? or isbn=?", (title, author, year, isbn))
        rows =self.cur.fetchall()
        return rows

    def delete(self, id):
        self.cur.execute("delete from book where id=?", (id,))
        self.conn.commit()

    def update(self, id, author, title, year, isbn):
        self.cur.execute("update book set title=?, author=?, year=?, isbn=? where id=?", (title, author, year, isbn, id))
        self.conn.commit()

    def __del__(self):
        self.conn.close()

这段代码是一个简单的图书管理系统,使用 SQLite 数据库来存储和管理图书信息。

首先,在类的构造函数中建立了一个 SQLite 数据库连接,并创建了一个名为 “book” 的表,该表有五个列分别是 id、title、author、year 和 isbn。id 列被指定为主键,并自动递增。

接下来,类中定义了几个方法来执行不同的数据库操作:

  • insert 方法用于添加图书信息到数据库中。它接受四个参数:title、author、year 和 isbn,并使用 SQL 语句向数据库中插入一条记录。
  • view 方法用于查看所有图书信息。它执行了一个查询语句,返回了数据库中的所有记录。
  • search 方法用于根据指定的条件查询图书信息。它接受四个可选的参数:title、author、year 和 isbn,并根据这些条件执行查询语句,返回匹配的记录。
  • delete 方法用于删除指定 id 的图书信息。它根据传入的 id 值执行了一个删除语句。
  • update 方法用于更新指定 id 的图书信息。它接受五个参数:id、author、title、year 和 isbn,并根据这些参数执行了一个更新语句。

最后,类中的 del 方法用于在对象被销毁时关闭数据库连接。

这段代码实现了一个简单的图书管理系统,可以添加、查看、搜索、删除和更新图书信息。它使用了 SQLite 数据库作为数据存储的后端,并提供了一组简单的接口来操作数据库中的数据。

GUI界面

编写GUI界面文件"book.py",实现图书信息的展示:

from tkinter import *
from db import Database

database = Database("books.db")


class BookManageSystem:
    def __init__(self, root):
        self.root = root
        self.root.title("图书管理系统")
        l1 = Label(root, text="书名")
        l1.grid(row=0, column=0)
        l2 = Label(root, text="作者")
        l2.grid(row=0, column=2)
        l3 = Label(root, text="出版时间")
        l3.grid(row=1, column=0)
        l4 = Label(root, text="ISBN")
        l4.grid(row=1, column=2)
        self.title_text = StringVar()
        self.e1 = Entry(root, textvariable=self.title_text)
        self.e1.grid(row=0, column=1)
……请下载后查看完整代码

这段代码是一个基本的图书管理系统。首先通过import语句引入必需的库和模块,然后创建一个名为BookManageSystem的类。

在BookManageSystem的构造函数中,初始化了一个Tkinter的根窗口root,并设置了窗口的标题为"图书管理系统"。然后通过Label控件创建了四个标签,用于显示"书名"、“作者”、"出版时间"和"ISBN"这四个字段。接着通过Entry控件创建了四个文本框,用于用户输入图书的相关信息。使用了StringVar类型的变量来绑定这些文本框的值。接下来创建了一个Listbox控件用于显示图书列表,并创建了一个Scrollbar控件用于支持列表的滚动。

接下来是几个按钮,分别对应查看所有图书、搜索图书、添加图书、修改图书和删除图书等操作。其中每个按钮都绑定了相应的命令函数。最后创建了一个退出按钮用于关闭程序。

BookManageSystem类中定义了一些命令函数,包括view_command函数用于显示所有图书、search_command函数用于搜索图书、add_command函数用于添加图书、delete_command函数用于删除图书以及update_command函数用于修改图书。这些函数内部调用了数据库操作类的相关方法。

在程序的最后,创建了一个Tk()对象root,并设置窗口的宽度和高度。然后通过计算窗口的坐标,将窗口居中显示。最后创建了一个BookManageSystem对象,并调用mainloop()方法来显示窗口以及处理事件循环。

该程序的功能是实现一个简单的图书管理系统,用户可以通过界面进行图书的增删改查操作,并将数据存储在数据库中。

运行结果

1
2

写在后面

我是一只有趣的兔子,感谢你的喜欢!

文章来源:https://blog.csdn.net/m0_68111267/article/details/135601043
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。