基于PythonTK 窗口MYSQL的图书管理系统

该图书管理系统实现了用户、管理员界面的图书管理系统;在用户界面实现了查询图书、借阅图书、归还图书、捐赠图书、图书馆信息的功能。在管理员界面实现了打印缺的书单、下架图书、查询借阅记录、新进图书、查询图书信息等操作,代码简单易懂。

废话不多说直接展示Mysql中的部分表

mysql表格
读者学号密码性别班级
管理者职工号密码性别院系
书籍编号作者数量出版日期
借阅学号书号借出时间归还时间
读者号账号密码
管理号账号密码
读者姓名性别学院班级

 接着往下看

该系统是基于Python中的pyMySQL、TK 窗口完成、参考时注意修改图片位置和mysql数据库的账户密码。

这里是主界面

import tkinter as tk
import tkinter.messagebox as msg
import pymysql
import os
import user
import manage
from tkinter import  *

BACK_PATH="D:\pycharm\gou.gif"

def exit1():
    root.destroy()
    user.frame()

def exit2():
    root.destroy()
    manage.frame()

def frame():
    global root
    root = tk.Tk()
    root.title('科B311图书系统')
    photo=tk.PhotoImage(file=BACK_PATH)
    theLabel = tk.Label(root, image=photo, compound=tk.CENTER, fg="white").grid(row=0, column=0)
    theLabel2 = tk.Label(root, image=photo, compound=tk.CENTER, fg="white").grid(row=0, column=2)
    labe1 = tk.Label(root, text="欢迎来到科B311图书系统,请选择用户类型:", font=36).grid(row=0, column=1)
    tk.Button(root, text='普通用户',width=10,height=2,command=exit1).grid(row=1, column=1,)
    tk.Button(root, text='管理员',width=10,height=2,  command=exit2).grid(row=2, column=1)
    root.mainloop()


if __name__ == '__main__':
    frame()

其次是管理员界面 manage.py

import tkinter as tk
import tkinter.messagebox as msg
import pymysql
import os
import user

BACK_PATH="D:\pycharm\horse.gif"


def check_book():
    db = pymysql.connect(host="localhost", user="root", password="123456", db="library")
    cursor = db.cursor()
    a = input_book.get()
    sql = "SELECT * FROM book WHERE bname = '%s'" % (a)
    cursor.execute(sql)
    results = cursor.fetchone()
    if results:
        root3 = tk.Tk()
        root3.title('查询到的书')
        val = "您要查询的书号为:%s" % (results[0])
        print2 = tk.Label(root3, text=val)
        print2.grid(row=1, column=0, padx=10, pady=5)
        val = "您要查询的书的作者为:%s" % (results[1])
        print3 = tk.Label(root3, text=val)
        print3.grid(row=2, column=0, padx=10, pady=5)
        val = "您要查询的书的库存量为:%s" % (results[2])
        print4 = tk.Label(root3, text=val)
        print4.grid(row=3, column=0, padx=10, pady=5)
        val = "您要查询的书名为:%s" % (results[3])
        print5 = tk.Label(root3, text=val)
        print5.grid(row=4, column=0, padx=10, pady=5)
        val = "您要查询的书的出版日期为:%s" % (results[4])
        print6 = tk.Label(root3, text=val)
        print6.grid(row=5, column=0, padx=10, pady=5)
    else:
        msg._show(title='错误', message='没有查到您要查询的记录')
    db.close()

def book_print():
    db = pymysql.connect(host="localhost", user="root", password="123456", db="library")
    cursor = db.cursor()
    sql = "SELECT bname FROM book WHERE num=0"
    cursor.execute(sql)
    results = cursor.fetchall()
    for i in results:
        print("库存量不足的书名为:"+i[0])
    db.close()

def delete_end():
    db = pymysql.connect(host="localhost", user="root", password="123456", db="library")
    cursor = db.cursor()
    name = input4.get()
    sql = "UPDATE book SET num=0 WHERE bname= '%s'"%(name)
    try:
        cursor.execute(sql)
        db.commit()
        msg._show(title='成功', message='下架成功')
    except:
        db.rollback()
        msg._show(title='系统故障', message='下架失败')
    db.close()


def resiger_end():
    db = pymysql.connect(host="localhost", user="root",passwd= "123456", db="library")
    cursor = db.cursor()
    rid = input1.get()
    name = input2.get()
    sex = input3.get()
    clas = input4.get()
    sql1 = " INSERT INTO mpass VALUES(%s,%s)"%(rid,name)
    sql = "INSERT INTO managers VALUES(%s,'%s','%s','%s',10)" % (rid, name, sex, clas)
    try:
        cursor.execute(sql)
        db.commit()
        cursor.execute(sql1)
        db.commit()
        msg._show(title='成功', message='注册成功!')
    except:
        msg._show(title='错误', message='注册失败!')
    db.close()

def borrow_end():
    global root3
    root3 = tk.Tk()
    root3.title("借阅记录查询:")
    db = pymysql.connect(host="localhost", user="root", password="123456", db="library")
    cursor = db.cursor()
    name = input5.get()
    sql = "SELECT lid,bname,btime,rtime,mingzi FROM borrow,reader,book,reader_mess WHERE borrow.bid=book.bid And reader.rid=reader_mess.rid AND borrow.rid=reader.rid AND rname='%s'"%(name)
    cursor.execute(sql)
    results = cursor.fetchall()
    cur=0
    for i in results:
      tk.Label(root3,text="记录号为:%s 书名为:%s 借阅时间为:%s 还书时间为:%s 名字叫:%s"%(i[0],i[1],i[2],i[3],i[4]),justify=tk.LEFT,font=36).grid(row=cur,column=0)
      cur=cur+1
    db.close()

def book_delete():
    global root2
    root2 = tk.Tk()
    root2.title("下架图书")
    v1 = tk.StringVar()
    global input4
    labe1 = tk.Label(root2, text="请输入要下架的图书名:", font=36).grid(row=0, column=0)
    input4 = tk.Entry(root2, textvariable=v1)
    input4.grid(row=1, column=0)
    tk.Button(root2, text='确认', width=10,font='宋体', command=delete_end).grid(row=2, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='取消', width=10, font='宋体',command=exit_login3).grid(row=2, column=1, sticky=tk.E, padx=10, pady=5)

def donate_end():
    db = pymysql.connect(host="localhost", user="root", password="123456", db="library")
    cursor = db.cursor()
    name = input10.get()
    amount = input11.get()
    write = input12.get()
    tim = input13.get()
    sql = "SELECT num FROM book WHERE bname='%s'" % (name)
    cursor.execute(sql)
    results = cursor.fetchone()
    if results:
        sql = "UPDATE book SET num=num+%s WHERE bname='%s'" % (amount, name)
        try:
            cursor.execute(sql)
            db.commit()
            msg._show(title="成功", message="新进图书更新成功")
        except:
            msg._show(title="系统故障", message="新进图书更新失败")
            db.rollback()
    else:
        sql = "INSERT INTO book(writer,num,bname,ptime) VALUES ('%s',%s,'%s','%s')" % (write, amount, name, tim)
        try:
            cursor.execute(sql)
            db.commit()
            msg._show(title="成功", message="新进图书更新成功")
        except:
            msg._show(title="错误", message="输入信息有误")
            db.rollback()
    db.close()

def borrow_select():
    global root2
    root2 = tk.Tk()
    root2.title("查询借阅记录")
    v1 = tk.StringVar()
    global input5
    labe1 = tk.Label(root2, text="请输入要查询的读者学号:", font=36).grid(row=0, column=0)
    input5 = tk.Entry(root2, textvariable=v1)
    input5.grid(row=1, column=0)
    tk.Button(root2, text='确认', width=10,font='宋体', command=borrow_end).grid(row=2, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='取消', width=10, font='宋体',command=exit_login3).grid(row=2, column=1, sticky=tk.E, padx=10, pady=5)


def book_select():
    v1=tk.StringVar()
    global root2
    root2=tk.Tk()
    root2.title("查询图书")
    global input_book
    labe1 = tk.Label(root2, text="请输入您要查询的图书名:", font=36).grid(row=0, column=0)
    input_book = tk.Entry(root2,textvariable=v1)
    input_book.grid(row=0,column=1)
    tk.Button(root2, text='确认', width=10,fg='green', command=check_book).grid(row=1, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='取消', width=10, fg='red',command=exit_login3).grid(row=1, column=1, sticky=tk.E, padx=10, pady=5)

def book_in():
    global root2
    root2 = tk.Tk()
    root2.title("新进图书")
    v1 = tk.StringVar()
    v2 = tk.StringVar()
    v3 = tk.StringVar()
    v4 = tk.StringVar()
    global input10,input11,input12,input13
    labe1 = tk.Label(root2, text="请输入您要新进的图书名:", font=36).grid(row=0, column=0)
    labe12 = tk.Label(root2, text="请输入您要新进的图书的数量:", font=36).grid(row=1, column=0)
    labe13 = tk.Label(root2, text="请输入您要新进的作者:", font=36).grid(row=2, column=0)
    labe4 = tk.Label(root2, text="请输入您要新进的图书的出版时间:", font=36).grid(row=3, column=0)
    input10 = tk.Entry(root2, textvariable=v1)
    input10.grid(row=0, column=1)
    input11 = tk.Entry(root2, textvariable=v2)
    input11.grid(row=1, column=1)
    input12 = tk.Entry(root2, textvariable=v3)
    input12.grid(row=2, column=1)
    input13 = tk.Entry(root2, textvariable=v4)
    input13.grid(row=3, column=1)
    tk.Button(root2, text='确认', width=10, fg='green',font='宋体',command=donate_end).grid(row=4, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='取消', width=10,fg='red', font='宋体',command=exit_login3).grid(row=4, column=1, sticky=tk.E, padx=10, pady=5)


def success_tip(id):
    global root1
    root.destroy()
    root2.destroy()
    root1 = tk.Tk()
    root1.title('科B311图书管理系统')
    #root1.geometry("280x250")
    labe1 = tk.Label(root1, text="欢迎来到科B311图书管理系统,请选择您要进行的操作:", font=36).grid(row=0, column=0)
    tk.Button(root1, text='打印缺书单',bg='cyan',fg='black', font='宋体',width=50,height=2, command=book_print).grid(row=1, column=0)
    tk.Button(root1, text='下架图书',bg='violet',fg='black', font='宋体',width=50,height=2,  command=book_delete).grid(row=5, column=0)
    tk.Button(root1, text='查询借阅记录', bg='yellow',fg='black',font='宋体',width=50,height=2, command=borrow_select).grid(row=3, column=0)
    tk.Button(root1, text='新进图书', bg='sky blue',fg='black',font='宋体',width=50,height=2,  command=book_in).grid(row=4, column=0)
    tk.Button(root1, text='查询图书信息', bg='pink',fg='black',font='宋体',width=50,height=2, command=book_select).grid(row=2, column=0)
    tk.Button(root1, text='退出', bg='red',fg='black',font='宋体',width=50,height=2, command=exit_loginx).grid(row=6, column=0)

def exit_loginx():
    root1.destroy()
    frame()

def exit_login2():
    root1.destroy()

def login_check():
    db = pymysql.connect(host="localhost", user="root", password="123456", db="library")
    cursor = db.cursor()
    id=input_id.get()
    name=input2.get()
    sql = "SELECT mpassward FROM mpass WHERE mid='%s'" % (id)
    cursor.execute(sql)
    results = cursor.fetchone()
    if results:
            if name == results[0]:
                success_tip(id)
            else:
               msg._show(title='错误!',message='账号密码输入错误!')
    else:
        msg._show(title='错误!',message='您输入的用户不存在!')
    db.close()

def auto_login():
    global root2
    root2 = tk.Tk()
    v1 = tk.StringVar()
    v2 = tk.StringVar()
    root2.title("登入")
    labe1=tk.Label(root2,text="职工号:",font=36).grid(row=0, column=0)
    label2=tk.Label(root2,text="密码:",font=36).grid(row=1,column=0)
    global input_id,input2
    input_id = tk.Entry(root2, textvariable=v1)
    input_id.grid(row=0, column=1, padx=10, pady=5)
    input2 = tk.Entry(root2, textvariable=v2, show='*')
    input2.grid(row=1, column=1, padx=10, pady=5)
    tk.Button(root2, text='登录', width=10,font='宋体', fg='green',command=login_check).grid(row=3, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='退出', width=10, font='宋体',fg='red',command=exit_login3).grid(row=3, column=1, sticky=tk.E, padx=10, pady=5)

def exit_login():
    root.destroy()
    user.frame()

def exit_login3():
    root2.destroy()

def resiger():
    root2 = tk.Tk()
    root2.title("注册")
    label1  = tk.Label(root2, text="职工号:", font=36).grid(row=0,column=0)
    label2 = tk.Label(root2, text="密码:", font=36).grid(row=1,column=0)
    label3 = tk.Label(root2,text="性别:",font=36).grid(row=2,column=0)
    label4 = tk.Label(root2,text="所属学院:",font=36).grid(row=3,column=0)
    v1 = tk.StringVar()
    v2 = tk.StringVar()
    v3 = tk.StringVar()
    v4 = tk.StringVar()
    global input1,input2,input3,input4
    input1 = tk.Entry(root2, textvariable=v1)
    input1.grid(row=0, column=1, padx=10, pady=5)
    input2 = tk.Entry(root2, textvariable=v2, show='*')
    input2.grid(row=1, column=1, padx=10, pady=5)
    input3 = tk.Entry(root2, textvariable=v3)
    input3.grid(row=2, column=1, padx=10, pady=5)
    input4 = tk.Entry(root2, textvariable=v4,)
    input4.grid(row=3, column=1, padx=10, pady=5)
    tk.Button(root2, text='确认', fg='green',width=10, command=resiger_end).grid(row=4, column=0, sticky=tk.W, padx=10, pady=5)

def frame():
    global root
    root = tk.Tk()
    root.title('科B311图书管理系统登录')
    root.geometry("430x750")
    photo = tk.PhotoImage(file=BACK_PATH)
    theLabel = tk.Label(root, image=photo, compound='bottom', fg="white").grid(row=3, column=0)
    tk.Button(root, text='登入',bg='yellow',fg='green', width=62,height=9, command=auto_login).grid(row=0, column=0)
    tk.Button(root, text='注册',bg='pink',fg='orange' ,width=62, height=9, command=resiger).grid(row=1, column=0)
    tk.Button(root, text='退出',bg='cyan',fg='red',width=62,height=9,command=exit_login).grid(row=2, column=0)
    root.mainloop()

if __name__ == '__main__':
    frame()

再者是用户登录界面user.py

import tkinter as tk
import tkinter.messagebox as msg
import pymysql
import os
from PIL import Image,ImageTk



def check_book():
    db = pymysql.connect(host="localhost",user= "root",passwd= "123456", database="library")
    cursor = db.cursor()
    a = input_book.get()
    sql = "SELECT * FROM book WHERE bname = '%s'" % (a)
    cursor.execute(sql)
    results = cursor.fetchone()
    print(results)
    if results:
        root3 = tk.Tk()
        root3.title('查询到的书')
        val = "您要查询的书号为:%s" % (results[0])
        print1 = tk.Label(root3, text=val)
        print1.grid(row=0, column=0, padx=10, pady=5)
        val = "您要查询的书的作者为:%s" % (results[1])
        print3 = tk.Label(root3, text=val)
        print3.grid(row=2, column=0, padx=10, pady=5)
        val = "您要查询的书名为:%s" % (results[3])
        print5 = tk.Label(root3, text=val)
        print5.grid(row=4, column=0, padx=10, pady=5)
        val = "您要查询的书的出版日期为:%s" % (results[4])
        print6 = tk.Label(root3, text=val)
        print6.grid(row=5, column=0, padx=10, pady=5)
    else:
        msg._show(title='错误', message='没有查到您要查询的记录')
    db.close()

def borrow_end():
    db = pymysql.connect(host="localhost", user="root",passwd= "123456",database= "library")
    cursor = db.cursor()
    id = input_id.get()
    name = input8.get()
    sql = "SELECT bid,num FROM book WHERE bname='%s'" % (name)
    cursor.execute(sql)
    results = cursor.fetchone()
    print(results)
    if results[1] > 0:
        sql = "INSERT INTO borrow(rid,bid,btime) VALUES(%s,%s,CURDATE())" % (id, results[0])

        try:
            cursor.execute(sql)
            db.commit()
            msg._show(title="成功",message="借阅成功!")
        except:
            msg._show(title="系统故障",message="借阅失败!")
    else:
        msg._show(title="库存量不足",message="对不起,您要借阅的图书库存不足!")
    db.close()

def return_end():
    db = pymysql.connect(host="localhost", user="root",passwd= "123456", database="library")
    cursor = db.cursor()
    id = input_id.get()
    name = input9.get()
    sql = "SELECT bid FROM book WHERE bname = '%s'" % (name)
    cursor.execute(sql)
    results = cursor.fetchone()
    sql = "SELECT lid FROM borrow WHERE bid=%s AND rid=%s" % (results[0], id)
    cursor.execute(sql)
    result = cursor.fetchone()
    sql = "UPDATE borrow SET rtime=CURDATE()WHERE lid= %s"%(result[0])
    try:
        cursor.execute(sql)
        db.commit()
        msg._show(title='成功',message='还书成功')
    except:
        msg._show(title='系统故障',message='还失败')
    db.close()

def donate_end():
    db = pymysql.connect(host="localhost",user= "root", passwd="123456", database="library")
    cursor = db.cursor()
    id = input_id.get()
    name = input10.get()
    amount = input11.get()
    write = input12.get()
    tim= input13.get()
    sql = "SELECT num FROM book WHERE bname='%s'" % (name)
    cursor.execute(sql)
    results = cursor.fetchone()
    if results:
        sql = "UPDATE book SET num=num+%s WHERE bname='%s'" % (amount, name)
        try:
            cursor.execute(sql)
            db.commit()
            msg._show(title="成功",message="捐书成功!谢谢您")
        except:
            msg._show(title="系统故障",message="捐书失败")
            db.rollback()
    else:
        sql = "SELECT MAX(bid) FROM book"
        cursor.execute(sql)
        results = cursor.fetchone()
        result=list(results)
        result[0] = result[0] + 1
        results=tuple(result)
        sql = "INSERT INTO book VALUES (%s,'%s',%s,'%s','%s')" % (results[0], write, amount, name, tim)
        try:
            cursor.execute(sql)
            db.commit()
            msg._show(title="成功", message="捐书成功!谢谢您")
        except:
            msg._show(title="错误", message="输入信息有误")
            db.rollback()
    db.close()

def book_select():
    v1=tk.StringVar()
    global root2
    root2=tk.Tk()
    root2.title("查询图书")
    global input_book
    labe1 = tk.Label(root2, text="请输入您要查询的图书名:", font=36).grid(row=0, column=0)
    input_book = tk.Entry(root2,textvariable=v1)
    input_book.grid(row=0,column=1)
    tk.Button(root2, text='确认', width=10, command=check_book).grid(row=1, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='取消', width=10, command=exit_login3).grid(row=1, column=1, sticky=tk.E, padx=10, pady=5)

def book_borrow():
    db = pymysql.connect(host="localhost",user= "root",passwd= "123456",database= "library")
    cursor = db.cursor()
    id=input_id.get()
    sql = "SELECT bleft FROM reader WHERE rid = %s" % (id)
    cursor.execute(sql)
    result = cursor.fetchone()
    v_borrow=tk.StringVar()
    if result[0] == 0:
        msg._show(title="错误",message="你已达最大借阅量,借阅失败")
    global root2
    root2 = tk.Tk()
    root2 .title("借阅")
    global input8
    labe1 = tk.Label(root2, text="请输入您要借阅的图书名:", font=36).grid(row=0, column=0)
    input8 = tk.Entry(root2, textvariable=v_borrow)
    input8.grid(row=1,column=0)
    tk.Button(root2, text='确认', width=10, command=borrow_end).grid(row=2, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='取消', width=10, command=exit_login3).grid(row=2, column=1, sticky=tk.E, padx=10, pady=5)
    db.close()

def return_book():
    global root2
    root2 = tk.Tk()
    root2.title("还书")
    v1=tk.StringVar()
    global input9
    labe1 = tk.Label(root2, text="请输入您要还的图书名:", font=36).grid(row=0, column=0)
    input9 = tk.Entry(root2, textvariable=v1)
    input9.grid(row=1, column=0)
    tk.Button(root2, text='确认', width=10, command=return_end).grid(row=2, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='取消',fg='red' ,width=10, command=exit_login3).grid(row=2, column=1, sticky=tk.E, padx=10, pady=5)

def donate_book():
    global root2
    root2 = tk.Tk()
    root2.title("捐书")
    v1 = tk.StringVar()
    v2 = tk.StringVar()
    v3 = tk.StringVar()
    v4 = tk.StringVar()
    global input10,input11,input12,input13
    labe1 = tk.Label(root2, text="请输入您要捐赠的图书名:", font=36).grid(row=0, column=0)
    labe12 = tk.Label(root2, text="请输入您要捐赠的图书的数量:", font=36).grid(row=1, column=0)
    labe13 = tk.Label(root2, text="请输入您要捐赠的作者:", font=36).grid(row=2, column=0)
    labe4 = tk.Label(root2, text="请输入您要捐赠的图书的出版时间:", font=36).grid(row=3, column=0)
    input10 = tk.Entry(root2, textvariable=v1)
    input10.grid(row=0, column=1)
    input11 = tk.Entry(root2, textvariable=v2)
    input11.grid(row=1, column=1)
    input12 = tk.Entry(root2, textvariable=v3)
    input12.grid(row=2, column=1)
    input13 = tk.Entry(root2, textvariable=v4)
    input13.grid(row=3, column=1)
    tk.Button(root2, text='确认', fg='green',width=10, command=donate_end).grid(row=4, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root2, text='取消',fg='red' ,width=10, command=exit_login3).grid(row=4, column=1, sticky=tk.E, padx=10, pady=5)

def library_mess():
    db = pymysql.connect(host="localhost", user="root", passwd="123456", database="library")
    cursor = db.cursor()
    sql = "SELECT * FROM lib_mess "
    cursor.execute(sql)
    results = cursor.fetchone()
    root4=tk.Tk()
    root4.title("图书馆信息")
    val = "图书馆名字:%s" % (results[0])
    print1 = tk.Label(root4, text=val)
    print1.grid(row=0, column=0, padx=10, pady=5)
    val = "地址为:%s" % (results[1])
    print2 = tk.Label(root4, text=val)
    print2.grid(row=1, column=0, padx=10, pady=5)
    db.close()

def success_tip(id):
    root1 = tk.Tk()
    root1.title('科B311图书管理系统')
    labe1 = tk.Label(root1, text="欢迎来到科B311图书管理系统,请选择您要进行的操作:", font=36).grid(row=0, column=0)
    tk.Button(root1, text='查询图书',bg='cyan',fg='black',  command=book_select).grid(row=1, column=0)
    tk.Button(root1, text='借阅图书',bg='violet',fg='black',  command=book_borrow).grid(row=2, column=0)
    tk.Button(root1, text='归还图书',bg='yellow',fg='black', command=return_book).grid(row=3,  column=0)
    tk.Button(root1, text='捐赠图书',bg='pink',fg='black',command=donate_book).grid(row=4, column=0)
    tk.Button(root1, text='图书馆信息', bg='green', fg='black', command=library_mess).grid(row=5, column=0)
    tk.Button(root1, text='退出',bg='red',fg='black', command=resiger).grid(row=6, column=0)
    root1.mainloop()
def exit_login2():
    root1.destroy()

def login_check():
    db = pymysql.connect(host="localhost",user= "root",passwd= "123456", database="library")
    cursor = db.cursor()
    id=input_id.get()
    name=input2.get()
    sql = "SELECT rname FROM reader WHERE rid='%s'" % (id)
    cursor.execute(sql)
    results = cursor.fetchone()
    if results:
            if name == results[0]:
                success_tip(id)
            else:
               msg._show(title='错误!',message='账号密码输入错误!')
    else:
        msg._show(title='错误!',message='您输入的用户不存在!')
    db.close()

def auto_login():
    global root1
    root1 = tk.Tk()
    v1 = tk.StringVar()
    v2 = tk.StringVar()
    root1.title("登入")
    labe1=tk.Label(root1,text="学号:",font=36).grid(row=0, column=0)
    label2=tk.Label(root1,text="密码:",font=36).grid(row=1,column=0)
    global input_id,input2
    input_id = tk.Entry(root1, textvariable=v1)
    input_id.grid(row=0, column=1, padx=10, pady=5)
    input2 = tk.Entry(root1, textvariable=v2, show='*')
    input2.grid(row=1, column=1, padx=10, pady=5)
    tk.Button(root1, text='登录', fg='green',width=10, command=login_check).grid(row=3, column=0, sticky=tk.W, padx=10, pady=5)
    tk.Button(root1, text='退出', fg='red',width=10, command=exit_login2).grid(row=3, column=1, sticky=tk.E, padx=10, pady=5)

def exit_login():
    root.destroy()


def resiger_end():
    db = pymysql.connect(host="localhost", user="root",passwd= "123456", database="library")
    cursor = db.cursor()
    rid = input1.get()
    name = input2.get()
    xue = input3.get()
    pw = input4.get()
    sex = input5.get()
    clas = input6.get()
    sql = "INSERT INTO reader VALUES(%s,'%s','%s','%s',10)" % (rid, pw, sex, clas)
    sql1 ="INSERT INTO reader_mess VALUES(%s,'%s','%s','%s','%s',10)" % (rid,name,sex,xue,clas)
    try:
        cursor.execute(sql)
        db.commit()
        cursor.execute(sql1)
        db.commit()
        msg._show(title='成功', message='注册成功!')
    except:
        msg._show(title='错误', message='注册失败!')
    db.close()

def resiger():
    root2 = tk.Tk()
    root2.title("注册")
    label1  = tk.Label(root2, text="学号:", font=36).grid(row=0,column=0)
    label2 = tk.Label(root2, text="密码:", font=36).grid(row=3,column=0)
    label3 = tk.Label(root2,text="性别:",font=36).grid(row=4,column=0)
    label4 = tk.Label(root2,text="班级:",font=36).grid(row=5,column=0)
    label5 = tk.Label(root2, text="姓名:", font=36).grid(row=1, column=0)
    label6 = tk.Label(root2, text="学院:", font=36).grid(row=2, column=0)
    v1 = tk.StringVar()
    v2 = tk.StringVar()
    v3 = tk.StringVar()
    v4 = tk.StringVar()
    v5 = tk .StringVar()
    v6 = tk .StringVar()
    global input1,input2,input3,input4,input5,input6
    input1 = tk.Entry(root2, textvariable=v1)
    input1.grid(row=0, column=1, padx=10, pady=5)
    input2 = tk.Entry(root2, textvariable=v2)
    input2.grid(row=1, column=1, padx=10, pady=5)
    input3 = tk.Entry(root2, textvariable=v3)
    input3.grid(row=2, column=1, padx=10, pady=5)
    input4 = tk.Entry(root2, textvariable=v4,show="*")
    input4.grid(row=3, column=1, padx=10, pady=5)
    input5 = tk.Entry(root2, textvariable=v5, )
    input5.grid(row=4, column=1, padx=10, pady=5)
    input6 = tk.Entry(root2, textvariable=v6, )
    input6.grid(row=5, column=1, padx=10, pady=5)
    tk.Button(root2, text='确认', width=10, command=resiger_end).grid(row=6, column=0, sticky=tk.W, padx=10, pady=5)
def exit_login3():
    root2.destroy()

def frame():
    global root
    root = tk.Tk()
    root.title('科B311图书管理系统登录')
    root.geometry("600x580")
    tk.Button(root, text='登入', bg= 'pink',fg='green',width=70,font=('宋体',15),height=9, command=auto_login).grid(row=1, column=0)
    tk.Button(root, text='注册', bg='yellow',fg='blue',width=70,font=('宋体',15),height=9, command=resiger).grid(row=2, column=0)
    tk.Button(root, text='退出',bg='cyan',fg='orange',width=70,font=('宋体',15),height=9,command=exit_login).grid(row=3, column=0)
    root.mainloop()


if __name__ == '__main__':
    frame()

  • 1
    点赞
  • 82
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
【资源说明】 基于Python+tkinter+MySQL图书管理系统+设计报告+PPT(课程设计).zip 本图书管理系统是基于Python编程语言、tkinter图形化用户界面库、MySQL数据库开发的小型项目,旨 在帮助机构或个人实现对书籍的高效管理和查询。 本系统具有交互性和可视性的特点,拥有注册登录、添加书籍、删除书籍、修改书籍信息、查询书籍信 息等基本功能,是一款轻量级、易于使用的应用程序。由于使用了tkinter图形化界面库,用户可以轻松 地浏览和使用该系统系统具有美观的界面、友好的操作流程、快速的数据访问速度和稳定的数据管理 工具,用户可以用它方便地管理自己的图书数据。 总之,本图书管理系统通过提供一系列功能和良好的用户体验,使得用户可以快速、精确地管理和查询 书籍信息,提高操作效率,方便管理工作。如果需要,该系统还可以在此基础上进行扩展、升级和改 进,以满足更全面的需求。 开发工具 基于 Python tkinter 与 MySQL图书管理系统 简单地实现了包括用户登录和管理图书的功能。 内附源码和小组答辩ppt。 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
### 回答1: 很抱歉,我是AI语言模型,无法使用Python和MySQL创建图书管理系统。但是,我可以提供一些关于使用Python和MySQL创建图书管理系统的建议: 1. 使用Python的Tkinter模块创建用户界面,可以实现简单的图形化操作。 2. 使用MySQL作为数据库,存储图书信息和借阅记录等数据。 3. 在Python中使用MySQL Connector模块连接MySQL数据库,实现数据的读写操作。 4. 设计合适的数据表结构,包括图书信息表、借阅记录表等。 5. 实现基本的图书管理功能,如添加图书、删除图书、查询图书、借阅图书等。 希望这些建议能够对您有所帮助。 ### 回答2: 近年来,Python语言逐渐成为了重要的编程语言之一,而MySQL作为一款轻量级的关系型数据库管理系统,在开发Web应用时被广泛应用。基于Python和MySQL图书管理系统,强大的功能性和易于维护的代码架构,意味着该系统可以在自动化处理日常管理任务和数据交互中提供卓越的性能。 Python与MySQL的组合使得图书管理系统允许创建图书、添加、删除、修改、检索、排序等基本的图书管理功能。此外,还可以增加图书馆卡和读者信息的记录、管理、查询。所有这些功能在用户友好的GUI界面tkinter中得到了完美的展现。 设计时,应考虑如何使图书馆工作更轻松、方便、快捷和高效。这可以通过自动化许多重复性的任务,并提供快捷键和快速搜索等范畴达成。在该系统中,对于新书的添加、借书、还书等操作都可以一键完成。如此设计,固然会更方便并且节省了工作时间、提高了工作效率,还减少了犯错率。 此外,基于Python和MySQL图书管理系统可以对图书馆中所有图书的发放情况进行统计、分析并生成有用的报告。比如,系统可以显示某一书的归还状态、借出时间以及归还日期等信息,并根据这些信息分析图书的借出情况,以更好地满足读者需求,从而提高图书馆的服务水平。管理员可以利用系统内建的报告与统计工具来审核业务,并根据结果进行进一步的分析。 总的来说,基于Python和MySQL图书管理系统tk,是一款使用方便且拥有强大功能的工具,它可以帮助图书管理员更加快速、高效地管理各类书籍、借阅和归还书籍,并可以提高读者与图书馆之间的互动与服务的质量。 ### 回答3: 基于Python和MySQL图书管理系统tk是一款运用Python和MySQL编写的软件,用于图书管理相关事务的处理。Python作为一种开源、高效的编程语言,可以快速开发软件,而MySQL则是广受欢迎的关系型数据库管理系统,为用户提供高效的存储和数据管理服务,因此二者的组合,使得图书管理系统具备了可靠性和实用性。 图书管理系统tk的主要功能包括:图书的添加、修改和删除等操作;图书的查询和借阅操作;读者的信息管理;借阅记录的查询和统计;还书处理等功能。 在图书添加、修改和删除等操作中,系统管理员通过界面输入书籍的编号、书名、作者、出版社等必要信息,并可对图书馆藏信息进行修改和删除。添加、修改和删除图书的操作,方便快捷,可以实现快速更新图书馆藏目录。 在图书查询和借阅操作中,读者通过输入关键词或查询图书的分类,进行快速查询图书信息。在查询结果中,读者还可以查看图书的状态(在馆、借出等),以便决定是否借阅该图书。 在读者信息管理中,管理员可以对读者的账号信息进行管理,包括账号的添加、修改和删除等功能。同时,管理员可对借阅记录进行查询和统计,了解图书借阅情况,方便图书管理和服务。 在图书借阅和还书处理时,读者以账号方式登录,选择所要借阅的图书系统将自动生成借阅记录,并更新图书状态信息。对于还书操作,读者可以通过账号检索借阅记录,点击还书按钮即可完成还书操作。 综上所述,基于Python和MySQL图书管理系统tk,为图书馆提供了一个高效、可靠的图书管理平台,提高了图书馆的管理水平和读者服务体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值