一个python学生管理系统登录页面没啥技术含量 python可视化页面 tkinter

直接贴效果

 

 

 

 

 

贴代码

import tkinter
import tkinter.messagebox

username_data = ['admin']
password_data = ['123456']
# 创建应用程序窗口
root = tkinter.Tk()
root.title("学生管理系统")
root.geometry("500x300")
un = tkinter.StringVar()
un.set('')
pw = tkinter.StringVar()
pw.set('')


def login():
    username = un.get()
    password = pw.get()
    if username in username_data:
        if password == password_data[username_data.index(username)]:
            tkinter.messagebox.showinfo(title='学生管理系统', message='登录成功!')
        else:
            tkinter.messagebox.showerror('学生管理系统', message='账号或密码错误!')
    else:
        tkinter.messagebox.showerror('学生管理系统', message='账号或密码错误!')


def register():
    username = un.get()
    password = pw.get()
    if username != '' and password != '':
        if username in username_data:
            tkinter.messagebox.showinfo(title='学生管理系统', message='该用户名已存在!')
        else:
            username_data.append(username)
            password_data.append(password)
            tkinter.messagebox.showinfo(title='学生管理系统', message='注册成功!')
    else:
        tkinter.messagebox.showinfo(title='学生管理系统', message='请将信息补充完整!')


def cancel():
    un.set('')
    pw.set('')


tkinter.Label(root, text='请输入用户名和密码', justify=tkinter.CENTER, width=150).place(x=175, y=10, width=150, height=20)
tkinter.Label(root, text='用户名:', justify=tkinter.RIGHT, width=80).place(x=135, y=50, width=80, height=20)
tkinter.Entry(root, width=80, textvariable=un).place(x=215, y=50, width=150, height=20)
tkinter.Label(root, text='密 码:', justify=tkinter.RIGHT, width=80).place(x=135, y=90, width=80, height=20)
tkinter.Entry(root, show='*', width=80, textvariable=pw).place(x=215, y=90, width=150, height=20)
tkinter.Button(root, text='登录', command=login).place(x=155, y=130, width=50, height=20)
tkinter.Button(root, text='注册', command=register).place(x=225, y=130, width=50, height=20)
tkinter.Button(root, text='取消', command=cancel).place(x=315, y=130, width=50, height=20)
# 启动消息循环
root.mainloop()

这个是将账号密码保存在两个数组里边了,还有一种方法是用列表和字典嵌套存账号和密码

import tkinter
import tkinter.messagebox

student = [
    {"username": "admin", "password": "123456"}
]

# 创建应用程序窗口
win = tkinter.Tk()
win.title("学生管理系统")
win.geometry("300x200")

name = tkinter.StringVar()
name.set('')
passwords = tkinter.StringVar()
passwords.set('')


def login():
    username = name.get()
    password = passwords.get()

    for i in range(0, len(student)):
        if username in student[i]["username"]:
            if password == student[i]["password"]:
                tkinter.messagebox.showinfo(title='学生管理系统', message='登录成功!')
            else:
                tkinter.messagebox.showerror('学生管理系统', message='账号或密码错误!')
            break
        if i == len(student) - 1:
            tkinter.messagebox.showerror('学生管理系统', message='账号或密码错误!')


def register():
    username = name.get()
    password = passwords.get()
    if username != '' and password != '':
        for i in range(0, len(student)):
            if username == student[i]["username"]:
                tkinter.messagebox.showinfo(title='学生管理系统', message='该用户名已存在!')
                break
            else:
                if i == len(student) - 1:
                    item = {"username": username, "password": password}
                    student.append(item)
                    tkinter.messagebox.showinfo(title='学生管理系统', message='注册成功!')
                    break
    else:
        tkinter.messagebox.showinfo(title='学生管理系统', message='请将信息补充完整!')


def cancel():
    name.set('')
    passwords.set('')


tkinter.Label(win, text='请输入用户名和密码', justify=tkinter.CENTER, width=150).place(x=75, y=10, width=150, height=20)
tkinter.Label(win, text='用户名:', justify=tkinter.RIGHT, width=80).place(x=35, y=50, width=80, height=20)
tkinter.Entry(win, width=80, textvariable=name).place(x=115, y=50, width=150, height=20)
tkinter.Label(win, text='密 码:', justify=tkinter.RIGHT, width=80).place(x=35, y=90, width=80, height=20)
tkinter.Entry(win, show='*', width=80, textvariable=passwords).place(x=115, y=90, width=150, height=20)
tkinter.Button(win, text='登录', command=login).place(x=55, y=130, width=50, height=20)
tkinter.Button(win, text='注册', command=register).place(x=135, y=130, width=50, height=20)
tkinter.Button(win, text='取消', command=cancel).place(x=215, y=130, width=50, height=20)
# 启动消息循环
win.mainloop()

效果相同

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

梦可尤曦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值