源代码:
#coding:utf-8
import tkinter as tk
import sys
import random
home_login=tk.Tk()#登录界面
home_login.title("用户登录")
home_account=tk.Label(home_login,text="账号:")#账号输入
home_account.grid(row=0)
home_accounting=tk.Entry(home_login)
home_accounting.grid(row=0,column=1,padx=15,pady=10)
home_secret=tk.Label(home_login,text="密码")#密码输入
home_secret.grid(row=1)
home_secrets=tk.Entry(home_login,show='*')
home_secrets.grid(row=1,column=1,padx=15,pady=10)
def go_in():#登录信息验证
account=home_accounting.get()#账号
secret=home_secrets.get()#密码
if len(account)==0 or len(secret)==0:
warn_in=tk.Tk()
warn_in.title("警告")
warn_main=tk.Label(warn_in,text="输入不可为空")
warn_main.grid(row=0)
warn_s=tk.Button(warn_in,text="确定",command=warn_in.destroy)
warn_s.grid(row=1)
warn_in.mainloop()
return 0
sex=0
f=open("users.txt","r",encoding='utf-8')
while True:
line=f.readline().split()
if line==[]:
break
if line[1]==account and secret==line[2]:
sex=sex+1
print(line)
f.close()
if sex==1:
warn_in=tk.Tk()
warning=tk.Label(warn_in,text="登陆成功")
warning.grid(row=0)
warning_in=tk.Button(warn_in,text="确定",command=warn_in.quit)
warning_in.grid(row=1)
else:
warn_in=tk.Tk()
warning=tk.Label(warn_in,text="账号或者密码有误,请重新输入")
warning.grid(row=0)
warning_in=tk.Button(warn_in,text="确定",command=warn_in.destroy)
warning_in.grid(row=1)
warn_in.mainloop()
def go_get():#注册界面
def warn_getting():
a1=[];a2=[];a3=[]
name=home_getname.get()
secret=home_getsecret.get()
if len(name)==0 or len(secret)==0:
warn_get=tk.Tk()
warn_get.title("警告")
warn_main=tk.Label(warn_get,text="输入不可为空")
warn_main.grid(row=0)
warn_s=tk.Button(warn_get,text="确定",command=warn_get.destroy)
warn_s.grid(row=1)
warn_get.mainloop()
return 0
f=open("users.txt","r",encoding='utf-8')
while True:
line=f.readline().split()
if line==[]:
break
a1.append(line[0])#名字集合
a2.append(line[1])#账号集合
a3.append(line[2])#密码集合
f.close()
for i in a1:
if i==name:
warn_get=tk.Tk()
warn_get.title("警告")
warn_main=tk.Label(warn_get,text="用户名重复,请重新输入")
warn_main.grid(row=0)
warn_s=tk.Button(warn_get,text="确定",command=warn_get.destroy)
warn_s.grid(row=1)
warn_get.mainloop()
return 0
num=0#账号设置
for i in a2:
num=random.randint(10000,10000000000)#账号生成
sex=0
for x in a2:
if num==x:
sex=sex+1
if sex!=0:
break
file=open("users.txt","a",encoding='utf-8')
file.write("\n{} {} {}".format(name,num,secret))
file.close()
cc=tk.Tk()#告诉用户注册成功
def g():
cc.destroy()
home_get.destroy()
cc_text=tk.Label(cc,text="恭喜注册成功!")
cc_text.grid(row=0)
cc_message1=tk.Label(cc,text="用户名:{}".format(name))
cc_message1.grid(row=1)
cc_message2=tk.Label(cc,text="账号:{}".format(num))
cc_message2.grid(row=2)
cc_in=tk.Button(cc,text="确定",command=g)
cc_in.grid(row=3)
cc.mainloop()
home_get=tk.Tk()
home_get.title("注册")
home_get_name=tk.Label(home_get,text="请输入一个用户名")
home_get_name.grid(row=0)
home_getname=tk.Entry(home_get)
home_getname.grid(row=0,column=1,padx=15,pady=10)
home_get_secret=tk.Label(home_get,text="请设置您的密码")
home_get_secret.grid(row=1)
home_getsecret=tk.Entry(home_get,show='*')
home_getsecret.grid(row=1,column=1,padx=15,pady=10)
home_get_in=tk.Button(home_get,text="确定",command=warn_getting)
home_get_in.grid(row=2,column=1,padx=15,pady=10)
home_get.mainloop()
home_in=tk.Button(home_login,text="登录",command=go_in)#登录入口
home_in.grid(row=2,column=1,padx=10,pady=10)
home_get=tk.Button(home_login,text="注册",command=go_get)#注册入口
home_get.grid(row=3,column=1,padx=10,pady=0)
home_login.mainloop()
users.txt是储存账号名、账号以及密码的文件