python实现登录与注册功能
本⽂实例为⼤家分享了python实现登录与注册的具体代码,供⼤家参考,具体内容如下
1. 案例介绍
本例设计⼀个⽤户登录和注册模块,使⽤ Tkinter 框架构建界⾯,主要⽤到画布、⽂本框、按钮等组件。涉及知识点:Python Tkinter 界⾯编程、pickle 数据存储。本例实现了基本的⽤户登录和注册互动界⾯,并提供⽤户信息存储和验证。pickle 是python 语⾔的⼀个标准模块,安装 python 后已包含 pickle 库,不需要单独再安装。pickle 模块实现了基本的数据序列化和反序列化。通过 pickle 模块的序列化操作能够将程序中运⾏的对象信息保存到⽂件中去,永久存储;通过 pickle 模块的反序列化操作,能够从⽂件中创建上⼀次程序保存的对象。本例难度为中级,适合具有 Python 基础和 Tkinter 组件编程知识的⽤户学习。
2. ⽰例效果
3. ⽰例源码
import tkinter as tk
import pickle
ssagebox
from PIL import Image, ImageTk
# 设置窗⼝---最开始的母体窗⼝
window = tk.Tk() # 建⽴⼀个窗⼝
import picklewindow.title('欢迎登录')
# 画布
canvas = tk.Canvas(window, height=200, width=900)
# 加载图⽚
im = Image.open("images/01.png")
image_file = ImageTk.PhotoImage(im)
# image_file = tk.PhotoImage(file='images/01.gif')
image = ate_image(100, 40, anchor='nw', image=image_file)
canvas.pack(side='top')
# 两个⽂字标签,⽤户名和密码两个部分
tk.Label(window, text='⽤户名').place(x=100, y=150)
tk.Label(window, text='密码').place(x=100, y=190)
var_usr_name = tk.StringVar() # 讲⽂本框的内容,定义为字符串类型
var_usr_name.set('amoxiang@163') # 设置默认值
var_usr_pwd = tk.StringVar()
# 第⼀个输⼊框-⽤来输⼊⽤户名的。
# textvariable 获取⽂本框的内容
entry_usr_name = tk.Entry(window, textvariable=var_usr_name)
entry_usr_name.place(x=160, y=150)
# 第⼆个输⼊框-⽤来输⼊密码的。
entry_usr_pwd = tk.Entry(window, textvariable=var_usr_pwd, show='*')
entry_usr_pwd.place(x=160, y=190)
def usr_login():
usr_name = var_()
usr_pwd = var_()
try:
with open('usrs_info.pickle', 'rb') as usr_file:
usrs_info = pickle.load(usr_file)
except FileNotFoundError:
with open('usrs_info.pickle', 'wb') as usr_file:
usrs_info = {'admin': 'admin'}
pickle.dump(usrs_info, usr_file)
if usr_name in usrs_info:
if usr_pwd == usrs_info[usr_name]:
title='欢迎光临', message=usr_name + ':请进⼊个⼈⾸页,查看最新资讯')
else:
else:
is_sign_up = tk.messagebox.askyesno('提⽰', '你还没有注册,请先注册')
print(is_sign_up)
if is_sign_up:
usr_sign_up()
# 注册按钮
def usr_sign_up():
def sign_to_Mofan_Python():
np = ()
npf = new_()
nn = ()
# 上⾯是获取数据,下⾯是查看⼀下是否重复注册过
with open('usrs_info.pickle', 'rb') as usr_file:
exist_usr_info = pickle.load(usr_file)
if np != npf:
elif nn in exist_usr_info:
else:
exist_usr_info[nn] = np
with open('usrs_info.pickle', 'wb') as usr_file:
pickle.dump(exist_usr_info, usr_file)
window_sign_up.destroy()
# 点击注册之后,会弹出这个窗⼝界⾯。
window_sign_up = tk.Toplevel(window)
window_sign_up.title('欢迎注册')
window_ry('360x200') # 中间是x,⽽不是*号
# ⽤户名框--这⾥输⼊⽤户名框。
new_name = tk.StringVar()
new_name.set('amoxiang@163') # 设置的是默认值
tk.Label(window_sign_up, text='⽤户名').place(x=10, y=10)
entry_new_name = tk.Entry(window_sign_up, textvariable=new_name)
entry_new_name.place(x=100, y=10)
# 新密码框--这⾥输⼊注册时候的密码
new_pwd = tk.StringVar()
tk.Label(window_sign_up, text='密码').place(x=10, y=50)
entry_usr_pwd = tk.Entry(window_sign_up, textvariable=new_pwd, show='*')
entry_usr_pwd.place(x=100, y=50)
# 密码确认框
new_pwd_confirm = tk.StringVar()
tk.Label(window_sign_up, text='确认密码').place(x=10, y=90)
entry_usr_pwd_confirm = tk.Entry(
window_sign_up, textvariable=new_pwd_confirm, show='*')
entry_usr_pwd_confirm.place(x=100, y=90)
btn_confirm_sign_up = tk.Button(
window_sign_up, text=' 注册 ', command=sign_to_Mofan_Python)
btn_confirm_sign_up.place(x=120, y=130)
# 创建注册和登录按钮
btn_login = tk.Button(window, text=' 登录 ', command=usr_login)
btn_login.place(x=150, y=230) # ⽤place来处理按钮的位置信息。
btn_sign_up = tk.Button(window, text=' 注册 ', command=usr_sign_up)
btn_sign_up.place(x=250, y=230)
window.mainloop()
以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论