当前位置:   article > 正文

Python书籍管理系统_python图书管理系统总结

python图书管理系统总结

技术栈:Python3.7+mysql8.0+Tkinter

基本功能:用户登录、注册,录入书籍、修改书籍、查询书籍、删除书籍、统计书籍、排序书籍、导出书籍信息到本地功能,涵盖管理系统的增删改查。

完整代码见文末链接~~~

需要安装的库:

  1. import pymysql
  2. import pandas as pd
  3. from tkinter import *
  4. from tkinter import ttk
  5. from tkinter import messagebox

数据库初始操作:

  1. # 初始化数据库
  2. db = pymysql.connect(host='localhost',
  3. user='root', # 用户名
  4. password='178401', # 数据库密码
  5. database='book_database') # 数据库名字

在使用之前,需要确保已经下载安装好mysql,并且将数据库密码配置为自己的mysql密码。

进入mysql,创建名为book_database的数据库

create database book_database;

出现如上图所示的OK,就可以顺利运行代码了,建表操作已经在代码中集成。

系统初始如下:

初始化登录界面代码如下:

  1. class Login():
  2. def __init__(self):
  3. self.login_root=Tk()
  4. self.login_root.title('书籍管理系统')
  5. self.login_root.minsize(250, 150)
  6. self.judge=False
  7. def login_tk(self): #登录主界面
  8. Button(self.login_root, text='登录系统', width=30, height=2,command=self.test_log).grid(row=0, column=0, padx=5, pady=5)
  9. Button(self.login_root, text='用户注册', width=30, height=2,command=self.registered).grid(row=1, column=0, padx=5, pady=5)
  10. Button(self.login_root, text='初始化数据库', width=30, height=2,command=self.create_table).grid(row=2, column=0, padx=5, pady=5)
  11. Button(self.login_root, text='退出系统', width=30, height=2,command=self.login_root.destroy).grid(row=3, column=0, padx=5, pady=5)
  12. self.login_root.mainloop()
'
运行

在第一次使用项目时,要点击第三个初始化数据库按钮用来建立表单,如果已有表单,此按钮会清空原有数据建立新的空白表单。

初始化数据库代码如下:

  1. def create_table(self): #初始化数据库
  2. ms1 = messagebox.askyesno('提示!', '确定初始化数据库?这将清楚之前数据')
  3. if ms1:
  4. cursor.execute('drop table if exists book_database')
  5. create_card_message_sql = 'create table book_database(id char(20),name char(20),author char(20),press char(20),category char(20))'
  6. cursor.execute(create_card_message_sql)
  7. cursor.execute('drop table if exists test_id')
  8. create_test_id_sql='create table test_id(user_name char(20),password char(20))'
  9. cursor.execute(create_test_id_sql)
  10. messagebox.showinfo('提示!', '初始化数据库成功!')
  11. else:
  12. pass
'
运行

初始化完成后,第一步使用时应先点注册,会弹出注册界面:

注册页面代码如下:

  1. def registered(self):#注册界面
  2. registered_root=Tk()
  3. registered_root.title('注册')
  4. Label(registered_root, text='用户名:').grid(row=0, column=0, padx=5, pady=5)
  5. Label(registered_root, text='密码:').grid(row=1, column=0, padx=5, pady=5)
  6. Label(registered_root, text='请再次输入密码:').grid(row=2, column=0, padx=5, pady=5)
  7. user_name = Entry(registered_root)
  8. user_name.grid(row=0, column=1, padx=5, pady=5)
  9. password_A = Entry(registered_root)
  10. password_A.grid(row=1, column=1, padx=5, pady=5)
  11. password_B = Entry(registered_root)
  12. password_B.grid(row=2, column=1, padx=5, pady=5)
  13. def b1_fc():
  14. if user_name.get() and password_A.get() and password_B.get():
  15. if password_A.get() == password_B.get():
  16. sql="insert into test_id(user_name,password) values ('%s','%s')"%(user_name.get(),password_A.get())
  17. cursor.execute(sql)
  18. db.commit()
  19. messagebox.showinfo('提示!','注册成功!')
  20. registered_root.destroy()
  21. else:
  22. messagebox.showinfo('提示!','两次输入密码不一致,请重新输入~')
  23. password_A.delete(0,END)
  24. password_B.delete(0,END)
  25. else:
  26. messagebox.showinfo('提示!','用户名和密码不可以为空!')
  27. Button(registered_root, text='注册',command=b1_fc).grid(row=3, column=0, padx=5, pady=5)
  28. Button(registered_root, text='返回', command=registered_root.destroy).grid(row=3, column=2, padx=5, pady=5)
'
运行

注册完成后,账号密码信息会被添加到数据库中,就可以用注册的账号密码来登录了,登录界面如下:

登录相关代码如下:

  1. def test_log(self): #登录系统
  2. test_log_root=Tk()
  3. test_log_root.title('登录')
  4. Label(test_log_root,text='请输入用户名:').grid(row=0,column=0,padx=5,pady=5)
  5. Label(test_log_root,text='请输入密码:').grid(row=1,column=0,padx=5,pady=5)
  6. user_name=Entry(test_log_root)
  7. user_name.grid(row=0,column=1,padx=5,pady=5)
  8. password=Entry(test_log_root)
  9. password.grid(row=1,column=1,padx=5,pady=5)
  10. def b1_fc():
  11. if user_name.get() and password.get():
  12. sql="select * from test_id where user_name='%s'"%user_name.get()
  13. a = pd.read_sql(sql, db)
  14. if len(a):
  15. if a['password'][0]==password.get():
  16. messagebox.showinfo('提示!','登录成功!')
  17. test_log_root.destroy()
  18. self.login_root.destroy()
  19. self.judge=True
  20. else:
  21. messagebox.showinfo('提示','密码错误!请重新输入')
  22. password.delete(0,END)
  23. else:
  24. messagebox.showinfo('提示','用户名不存在!')
  25. user_name.delete(0,END)
  26. password.delete(0,END)
  27. else:
  28. messagebox.showinfo('提示','用户名或密码不能为空!')
  29. Button(test_log_root,text='登录',command=b1_fc).grid(row=2,column=0,padx=5,pady=5)
  30. Button(test_log_root,text='返回',command=test_log_root.destroy).grid(row=2,column=2,padx=5,pady=5)
'
运行

登录完成,就来到了系统的主页面:

初次登录的时候大家主页面是没用数据的,要手动点录入书籍按钮来添加书籍数据进去。

录入书籍、修改书籍、统计书籍、保存信息(导出所有信息到本地就是你这个程序存在那里,导出的csv文件就在哪里),删除书籍、查询书籍、排序书籍,按钮全都绑定了function可以正常使用,具体效果图如下:

统计书籍

导出书籍

大家可以自行探索,几年前写的代码了比较粗糙敬请谅解,有需要的可以在框架上自行探索,小白不懂的欢迎留言。

完成代码:

【免费】Python+mysql+tkinter书籍管理系统资源-CSDN文库

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/正经夜光杯/article/detail/811233
推荐阅读
相关标签
  

闽ICP备14008679号