python的tkinter如何实现简单登录
发表于:2024-12-13 作者:千家信息网编辑
千家信息网最后更新 2024年12月13日,这篇文章主要介绍"python的tkinter如何实现简单登录",在日常操作中,相信很多人在python的tkinter如何实现简单登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希
千家信息网最后更新 2024年12月13日python的tkinter如何实现简单登录
这篇文章主要介绍"python的tkinter如何实现简单登录",在日常操作中,相信很多人在python的tkinter如何实现简单登录问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python的tkinter如何实现简单登录"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
通过python的tkinter实现简单的注册登录
参考文章:https://www.yisu.com/article/197751.htm
编写一个用户登录界面,用户可以登录账户信息,如果账户已经存在,可以直接登录,登录名或者登录密码输入错误会提示,如果账户不存在,提示用户注册,点击注册进去注册页面,输入注册信息,确定后便可以返回登录界面进行登录。进入个人主页可以对个人信息进行修改。
代码
import tkinter as tkfrom tkinter import messagebox # import this to fix messagebox errorimport pickleusername = ''# 登录界面def welcome(): def usr_login(): usr_name = var_usr_name.get() usr_pwd = var_usr_pwd.get() try: with open('usrs_info.pickle', 'rb') as usr_file: usrs_info = pickle.load(usr_file) usr_file.close() except FileNotFoundError: with open('usrs_info.pickle', 'wb') as usr_file: usrs_info = {'admin': 'admin'} pickle.dump(usrs_info, usr_file) usr_file.close() if usr_name in usrs_info: if usr_pwd == usrs_info[usr_name]: tk.messagebox.showinfo(title='Welcome', message='How are you? ' + usr_name) # 进入主页 global username username= usr_name print(username) window.destroy() index_page() else: tk.messagebox.showerror(message='Error, your password is wrong, try again.') else: is_sign_up = tk.messagebox.askyesno('Welcome', 'You have not signed up yet. Sign up today?') if is_sign_up: usr_sign_up() window = tk.Tk() window.title('Welcome to the login page!') window.geometry('450x300') # welcome image canvas = tk.Canvas(window, height=200, width=500) image_file = tk.PhotoImage(file='welcome.gif') image = canvas.create_image(0, 0, anchor='nw', image=image_file) canvas.pack(side='top') # user information tk.Label(window, text='User name: ').place(x=50, y=150) tk.Label(window, text='Password: ').place(x=50, y=190) var_usr_name = tk.StringVar() entry_usr_name = tk.Entry(window, textvariable=var_usr_name) entry_usr_name.place(x=160, y=150) var_usr_pwd = tk.StringVar() entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*') entry_usr_pwd.place(x=160, y=190) # login and sign up button btn_login = tk.Button(window, text='Login', command=usr_login) btn_login.place(x=170, y=230) btn_sign_up = tk.Button(window, text='Sign up', command=usr_sign_up) btn_sign_up.place(x=270, y=230) window.mainloop()# 个人信息页面def index_page(): global username index_window = tk.Tk() index_window.title('请选择你要进行的操作') index_window.geometry('300x200') tk.Label(index_window,text="你好!"+username).place(x=50,y=50) # 修改个人信息 def change_personal_info(): # 新窗口 change_info__window = tk.Toplevel() change_info__window.title('修改个人信息') change_info__window.geometry('400x300') # 修改个人信息点击页面 def change_info_click(): name = new_name.get() psw = new_password.get() conpsw = new_password_confirm.get() with open('usrs_info.pickle', 'rb') as f: usrs_info = pickle.load(f) f.close() if conpsw!= psw: tk.messagebox.showerror(title='Error', message='两次密码不一致请重新输入!') else: if name in usrs_info: tk.messagebox.showerror(title='Error', message='用户名已存在,请重新换一个新用户名') else: # 创建新 usrs_info.pop(username) usrs_info[name] = psw with open('usrs_info.pickle', 'wb') as file: pickle.dump(usrs_info, file) f.close() tk.messagebox.showinfo(title='修改成功', message='修改成功!') change_info__window.destroy() tk.messagebox.showinfo(title='请重新登录!', message='请重新登录!') index_window.destroy() welcome() # 修改用户名变量 new_name = tk.StringVar() tk.Label(change_info__window, text="用户名:").place(x=50, y=50) new_name_entry = tk.Entry(change_info__window, show=None, textvariable=new_name).place(x=120, y=50) # 修改新密码变量 new_password = tk.StringVar() tk.Label(change_info__window, text='密码:').place(x=50, y=80) new_password_entry = tk.Entry(change_info__window, show="*", textvariable=new_password).place(x=120, y=80) # 修改新确认密码变量 new_password_confirm = tk.StringVar() tk.Label(change_info__window, text="确认密码:").place(x=50, y=110) new_password_confirm_entry = tk.Entry(change_info__window, show="*", textvariable=new_password_confirm).place(x=120, y=110) # 修改信息按钮绑定 sign_window_button = tk.Button(change_info__window, text='确认', command=change_info_click).place(x=150, y=140) # 修改个人信息按钮绑定 change_info_button = tk.Button(index_window,text='修改个人信息',command=change_personal_info).place(x=100,y=100)# 注册页面def usr_sign_up(): sign_up_window = tk.Toplevel() sign_up_window.title('注册') sign_up_window.geometry('400x200') # 注册点击事件 def sign_up_hit(): name = new_name.get() psw = new_password.get() conpsw = new_password_confirm.get() with open('usrs_info.pickle', 'rb') as usr_file: usrs_info = pickle.load(usr_file) if psw!=conpsw: tk.messagebox.showerror(title='Error', message='两次密码不一致请重新输入!') else: if name in usrs_info: tk.messagebox.showerror(title='Error', message='用户名已存在') else: # 创建新 usrs_info[name] = psw with open('usrs_info.pickle', 'wb') as f: pickle.dump(usrs_info,f) tk.messagebox.showinfo(title='注册成功', message='注册成功!') sign_up_window.destroy() # 注册名变量 new_name = tk.StringVar() tk.Label(sign_up_window,text="注册名:").place(x=50,y=50) new_name_entry = tk.Entry(sign_up_window,show=None,textvariable=new_name).place(x=120,y=50) # 注册密码变量 new_password = tk.StringVar() tk.Label(sign_up_window,text='密码:').place(x=50,y=80) new_password_entry = tk.Entry(sign_up_window,show="*",textvariable=new_password).place(x=120,y=80) # 注册确认密码变量 new_password_confirm= tk.StringVar() tk.Label(sign_up_window,text="确认密码:").place(x=50,y=110) new_password_confirm_entry = tk.Entry(sign_up_window,show="*",textvariable=new_password_confirm).place(x=120,y=110) # 注册按钮和点击事件绑定 sign_window_button = tk.Button(sign_up_window,text='注册',command=sign_up_hit).place(x=150,y=140)welcome()
截图
登录页面
注册页面
个人主页
修改个人信息失败
修改个人信息成功
重新登录twb
发现已注销除非重新注册。
发现成功修改个人信息。登陆上。
到此,关于"python的tkinter如何实现简单登录"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
登录
信息
个人
密码
用户
成功
变量
页面
用户名
学习
输入
主页
按钮
界面
账户
一致
个人主页
事件
文章
更多
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
win10网络安全在哪里
node js访问数据库
嵌入式管理服务器价格
深圳市弘潮网络技术服务
基金添加论文数据库doi
网络技术师入户广州
杭州埃米网络技术公司
浙江采购管理软件开发
山西电子软件开发介绍
软件开发接单的网站
手机+应用开发+数据库
广东省学网络安全的大专
网络安全类别安装后门
数据库维保实例
上饶市网络安全it培训
网络安全宣传实施内容
三水网络技术员培训中心
世界全明星网络安全大赛
网络安全信息系统拓扑描述
第六届网络安全技能赛
非主流软件开发
数据库故障代码
315曝光 网络安全
ae软件开发
网络安全过滤系统论文
网络安全文库
数据库中查询年份的范围
软件开发项目管理实施报告
吃鸡都有哪些服务器
帮我导入一下数据库