学生管理系统开发register(python语言)

界面设计

import tkinter as tk
import pickle
from tkinter import messagebox
class LoginPage:
class RegisterPage:
    def __init__(self,master):
        # master  传入的父函数
        # root 是一个根窗口
        self.root = master
        self.root.geometry("735x520")
        # self.root.title("登录界面")
        self.root.title("学生管理系统--登录")
        self.welcome_log = tk.PhotoImage(file="images/welcome.gif")
        self.logo_img = tk.PhotoImage(file="images/logo.gif")
        self.user_var = tk.StringVar()  #定义一个变量,用来接收账号的输入
        self.pwd_var = tk.StringVar()  # 定义一个变量,用来接收账号的输入
        self.create_register()
   	def create_register(self):
        self.root.withdraw()   # 隐藏根窗口,只保留顶级窗口
        # 创建一个注册的界面,并且完成注册的功能,toplevel
        self.registerpage = tk.Toplevel(self.root,)   # 顶级窗口
        self.registerpage.geometry("650x500")
        self.registerpage.title("注册界面")
        self.img_label2 = tk.Label(self.registerpage,image=self.logo_img)
        self.reg_user_label = tk.Label(self.registerpage,text="用户名:",font=("微软雅黑",12,'bold'),pady=5,fg="#666")
        self.reg_user_entry = tk.Entry(self.registerpage,font=("微软雅黑",12,"bold"),show="*")
        self.reg_pwd_label = tk.Label(self.registerpage, text="密码:", font=("微软雅黑", 12, 'bold'), pady=5, fg="#666")
        self.reg_pwd_entry = tk.Entry(self.registerpage, font=("微软雅黑", 12, "bold"),show="*")
        self.reg_pwdcf_label = tk.Label(self.registerpage, text="确认密码:", font=("微软雅黑", 12, 'bold'), pady=5, fg="#666")
        self.reg_pwdcf_entry = tk.Entry(self.registerpage, font=("微软雅黑", 12, "bold"))
        self.reg_btn = tk.Button(self.registerpage,text="注 册",font=("微软雅黑", 12, "bold"), pady=5, fg="#666",width=20,command=self.register)
        # grid 布局
        self.img_label2.grid(row=0,column=0,columnspan=8)
        self.reg_user_label.grid(row=1,column=1,pady=20)
        self.reg_user_entry.grid(row=1,column=2,columnspan=3,sticky="we",pady=20)
        self.reg_pwd_label.grid(row=2, column=1, pady=15)
        self.reg_pwd_entry.grid(row=2, column=2, columnspan=3, sticky="we", pady=15)
        self.reg_pwdcf_label.grid(row=3, column=1, pady=15)
        self.reg_pwdcf_entry.grid(row=3, column=2, columnspan=3, sticky="we", pady=15)
        self.reg_btn.grid(row=4,column=2,columnspan=2,pady=30)

实现注册功能的自定义函数

    def register(self):
        # 获取三个输入框的值
        username = self.reg_user_entry.get()
        pwd = self.reg_pwd_entry.get()
        pwdcf = self.reg_pwdcf_entry.get()
        if username and pwd and pwdcf:
            # 三个输入框不为空
            try:
                with open("static/users.pickle", mode="rb") as fp:
                    user_info = pickle.load(fp)
            except:
                    with open("static/users.pickle",mode="wb") as fp:
                        user_into = {"admin":"123"}  # python数据类型
                        # 转换成pickle数据类型写入文件
                        pickle.dump(user_into,fp)
            if username not in user_info:
                # 判断username 不存在user_info中,保证用户名没有被注册过
                if pwdcf == pwd:
                     # 判断两次密码要一致
                    user_info[username] = pwd
                    with open("static/users.pickle", mode="wb") as fp:
                        pickle.dump(user_info,fp)
                        # 完成注册功能,并且成功后关闭注册页面
                        messagebox.showinfo("注册成功", f"{username} 注册成功!")
                        self.registerpage.destroy()
                        self.root.deiconify()    # 取消隐藏,显示根窗口
                else:
                    self.reg_user_entry.delete(0, "end")
                    self.reg_pwd_entry.delete(0, "end")
                    self.reg_pwdcf_entry.delete(0, "end")
                    messagebox.showerror("注册失败", "两次密码不一致,请重新输入")
            else:
                self.reg_user_entry.delete(0,"end")
                self.reg_pwd_entry.delete(0,"end")
                self.reg_pwdcf_entry.delete(0, "end")
                messagebox.showerror("注册失败", "用户名已注册,请重新输入")
        else:
            messagebox.showerror("注册失败", "用户名或密码不能为空,请重新输入")

实现注册成功后返回登录界面的自定义函数

    def gotologin(self):
        # 完成注册功能,并且成功后关闭注册界面
        self.registerpage.destroy()

总结

与login界面设计中用到的库相同,使用实现效果解释到“学生管理系统开发login(python语言)”查看,后续代码持续更新中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值