文章目录
- 写在前面
- 实验介绍
- 实验内容
- SQLite3数据库
- GUI界面
- 运行结果
- 写在后面
写在前面
本期内容:基于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()方法来显示窗口以及处理事件循环。
该程序的功能是实现一个简单的图书管理系统,用户可以通过界面进行图书的增删改查操作,并将数据存储在数据库中。
运行结果
写在后面
我是一只有趣的兔子,感谢你的喜欢!