Python做出用户管理系统,连接MySql,图形化界面,课程设计

Python做出用户管理系统,连接MySql,图形化界面

  1. 导入包
    import pymysql
    from tkinter import ttk
    import tkinter as tk
    import tkinter.font as tkFont
    from tkinter import *  # 图形界面库
    import tkinter.messagebox as messagebox
    import time

     

  2. 主界面
    class StartPage:
        def __init__(self, parent_window):
            parent_window.destroy()  # 销毁子界面
    
            self.window = tk.Tk()
            self.window.title('信息管理系统')
            self.window.geometry('700x600+70+50')
    
            def getTime():
                timeStr = time.strftime('%H:%M:%S')
                Rtime.configure(text=timeStr)
                self.window.after(1000, getTime)
    
            Rtime = Label(self.window, text='')
            Rtime.pack(pady=25)
            getTime()
    
            label = Label(self.window, text="信息管理系统", font=("楷体", 40))
            label.pack(pady=100)  # pady=100 界面的长度
    
            #按钮
            Button(self.window,text="管理员登陆",font=tkFont.Font(size=16),command=lambda: AdminPage(self.window),width=20,
                   height=2,fg='white', bg='gray').place(x=100,y=300)
            Button(self.window, text="用户登陆", font=tkFont.Font(size=16),command=lambda: StudentPage(self.window),width=20,
                   height=2, fg='white', bg='gray').place(x=400,y=300)
            Button(self.window, text="作者信息", font=tkFont.Font(size=16), command=lambda: AboutPage(self.window), width=20,
                   height=2,fg='white', bg='gray').place(x=100,y=400)
            Button(self.window, text='退出系统',font=tkFont.Font(size=16),command=self.window.destroy,width=20,height=2,
                   fg='white', bg='gray').place(x=400,y=400)
    
            self.window.mainloop()  # 主消息循环

     

  3. 管理员登陆界面
    class AdminPage:
        def __init__(self, parent_window):
            parent_window.destroy()  # 销毁主界面
    
            self.window = tk.Tk()  # 初始框的声明
            self.window.title('管理员登陆页面')
            self.window.geometry('700x600+70+50')  # 这里的乘是小x
    
            # 菜单
            menubar = Menu(self.window)
            menubar.add_cascade(label="管理员注册",command=lambda: Admin(self.window))
            self.window.config(menu=menubar)
            self.window['menu'] = menubar
            self.window.protocol("WM_DELETE_WINDOW", self.back)  # 捕捉右上角关闭点击
    
            label = tk.Label(self.window, text='管理员登陆', bg='SkyBlue', font=('楷体', 20), width=70, height=2)
            label.pack()
    
            Label(self.window, text='管理员账号:', font=tkFont.Font(size=14)).pack(pady=25)
            self.guanli_username = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory')
            self.guanli_username.pack()
    
            Label(self.window, text='管理员密码:', font=tkFont.Font(size=14)).pack(pady=25)
            self.guanli_pass = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory', show='*')
            self.guanli_pass.pack()
    
            Button(self.window, text="登陆", width=8, font=tkFont.Font(size=12), command=self.login).pack(pady=40)
            Button(self.window, text="返回首页", width=8, font=tkFont.Font(size=12), command=self.back).pack()
    
        def login(self):
            guanli_pass = None
    
            # 数据库操作 查询管理员表
            db = pymysql.connect("localhost", "root", "lmxzjddf1122", "182")  # 打开数据库连接
            cursor = db.cursor()  # 使用cursor()方法获取操作游标
            sql = "SELECT * FROM guanli WHERE guanli_id = '%s'" % (self.guanli_username.get())  # SQL 查询语句
            try:
                # 执行SQL语句
                cursor.execute(sql)
                # 获取所有记录列表
                results = cursor.fetchall()
                for row in results:
                    guanli_id = row[0]
                    guanli_pass = row[1]
                    # 打印结果
            except:
                print("Error: unable to fecth data")
                messagebox.showinfo('警!', '用户名或密码不正确!')
            db.close()  # 关闭数据库连接
    
            if self.guanli_pass.get() == guanli_pass:
                AdminManage(self.window)  # 进入管理员操作界面
            else:
                messagebox.showinfo('警告!', '用户名或密码不正确!')
    
        def back(self):
            StartPage(self.window)  # 显示主窗口 销毁本窗口

     

  4. 管理员注册界面
    class Admin:
        def __init__(self, parent_window):
            parent_window.destroy()  # 销毁主界面
    
            self.window = tk.Tk()  # 初始框的声明
            self.window.title('管理员注册页面')
            self.window.geometry('700x600+70+50')  # 这里的乘是小x
    
            label = tk.Label(self.window, text='管理员注册', bg='SkyBlue', font=('楷体', 20), width=70, height=2)
            label.pack()
    
            Label(self.window, text='输入你的编号:', font=tkFont.Font(size=14)).pack(pady=25)
            self.teacher_id = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory')
            self.teacher_id.pack()
    
            Label(self.window, text='注册账号:', font=tkFont.Font(size=14)).pack(pady=25)
            self.guanli_username = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory')
            self.guanli_username.pack()
    
            Label(self.window, text='注册密码:', font=tkFont.Font(size=14)).pack(pady=25)
            self.guanli_pass = tk.Entry(self.window, width=30, font=tkFont.Font(size=14), bg='Ivory')
            self.guanli_pass.pack()
    
            Button(self.window, text="确定", width=8, font=tkFont.Font(size=12), command=self.login).pack(pady=40)
            Button(self.window, text="返回", width=8, font=tkFont.Font(size=12), command=self.back).pack()
            self.window.protocol("WM_DELETE_WINDOW", self.back)  # 捕捉右上角关闭点击
    
        def login(self):
            id = None
            # 数据库操作 查询管理员表
            db = pymysql.connect("localhost", "root", "lmxzjddf1122", "182")  # 打开数据库连接
            cursor = db.cursor()  # 使用cursor()方法获取操作游标
            sq = "SELECT * FROM teacher WHERE id = '%s'" % (self.teacher_id.get())  # SQL 查询语句
            try:
                # 执行SQL语句
                # 获取所有记录列表
                cursor.execute(sq)
                results = cursor.fetchall()
                for row in results:
                    id = row[0]
                    name = row[1]
            except:
                print("Error: unable to fecth data")
                messagebox.showinfo('警告!', '失败')
            db.close()  # 关闭数据库连接
            if self.teacher_id.get() != id:
                messagebox.showinfo('警告!', '你不在名册内!')
            else:
                if self.guanli_username.get() != '' and self.guanli_pass.get() != '':
                    db = pymysql.connect("localhost", "root", "lmxzjddf1122", "182")
                    cursor = db.cursor()  # 使用cursor()方法获取操作游标
                    sql = "INSERT INTO guanl
  • 24
    点赞
  • 238
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
图书馆管理系统是一种用于管理图书馆资源、用户信息以及借阅归还等流程的管理系统。在现代图书馆的日常管理中,它已经成为了不可或缺的一部分。本系统采用python语言编写,使用mysql数据库存储数据,并采用tkinter图形化界面展示,便于用户交互操作。 该系统主要分为三个模块,分别是图书管理模块、用户管理模块和借还管理模块。在图书管理模块中,管理员可以添加、删除和修改图书信息,并查询图书的详细信息。在用户管理模块中,管理员可以添加、删除和修改用户信息,并查询用户的详细信息。在借还管理模块中,管理员可以进行图书借阅、归还等操作,并查询借阅记录和归还记录。 系统采用mysql数据库来存储数据,包括图书信息、用户信息、借阅记录、归还记录等,以保证数据的安全和稳定性。在编写源码时,注重代码的规范性和可读性,添加了详细的注释,方便后续开发和维护。同时,系统界面采用tkinter图形化工具包,界面设计简洁而美观,操作简单方便。 总之,该图书馆管理系统采用python语言编写,使用mysql数据库存储数据,并采用tkinter图形化界面展示,主要包括图书管理模块、用户管理模块和借还管理模块,注重代码的规范性和可读性,界面简洁美观,操作方便。它为图书馆管理提供了一种高效、便捷的解决方案,能够满足不同图书馆的具体需求。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值