用户:
温和的草灵灵_qvW查看:0 回复:1 评论:0 创建时间:2024-01-23T17:05:32
【作品展示】

【作品介绍】
acszASssssssssd
【作品源代码】
# Python 中有个序列化过程叫作 pickle,它能够实现任意对象与文本之间的相互转化,
# 也可以实现任意对象与二进制之间的相互转化。也就是说,pickle 可以实现 Python 对象的存储及恢复。
# 封装: python对象转换为文本(字节流),写入文本,存储python对象(列化)
# 拆封: 文本(字节流)转换为python对象,读取文本,恢复python对象。(反列化)
# 1.dumps(): 将 Python 中的对象序列化成二进制对象,并返回,不需要写入文件;
# 2.loads(): 读取给定的二进制对象数据,并将其转换为 Python 对象;
# 3.dump(): 将 Python 中的对象序列化成二进制对象,并写入文件;
# 4.load(): 读取指定的序列化数据文件,并返回对象。
from tkinter import *
import pickle
import tkinter.messagebox as tk
from PIL import Image, ImageTk
# 设置窗口---最开始的母体窗口
win = Tk() # 建立一个窗口
win.title('欢迎登录')
win.geometry('450x300')
# 窗口大小为450x300
# 画布
canvas = Canvas(win, height=300, width=450)
# 加载图片
im = Image.open('背景图片1.jpg')
im = im.resize((430,300))
image_file = ImageTk.PhotoImage(im) #将图片缩小到合适的大小
# 放置图片
image = canvas.create_image(0,0,anchor='nw',image=image_file)
# 将画布放置在窗口上
canvas.pack(side='top')
# 两个文字标签,用户名和密码两个部分
Label(win, text='用户名').place(x=100,y=150)
Label(win, text='密 码').place(x=100, y=190)
# 动态标签
v1 = StringVar()
v1.set('123456789@qq.com')
v2 = StringVar()
# 第一个输入框-用来输入用户名的。
# textvariable 获取文本框的内容
e1 = Entry(win,textvariable=v1)
e1.place(x=160,y=150)
# 第二个输入框-用来输入密码的。
e2 = Entry(win,textvariable=v2,show = "*")
e2.place(x=160,y=190)
# 登录函数
def usr_login():
#获取输入的账号信息
#获取输入的密码
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) # 将 Python 中的对象序列化成二进制对象,并写入文件
#判断账号是否在字典当中,如果在就进行登录,否则提醒先注册
# 注册函数
def usr_sign_up():
# 获取数据函数
def sign2():
np = v4.get()
npf = v5.get()
nn = v3.get()
# 上面是获取数据,下面是查看一下是否重复注册过
with open('usrs_info.pickle', 'rb') as usr_file:
exist_usr_info = pickle.load(usr_file)
if np != npf:
tk.showerror('错误提示', '密码和确认密码必须一样')
elif nn in exist_usr_info:
tk.showerror('错误提示', '用户名早就注册了!')
else:
exist_usr_info[nn] = np
with open('usrs_info.pickle', 'wb') as usr_file:
pickle.dump(exist_usr_info, usr_file)
tk.showinfo('欢迎', '你已经成功注册了')
win2.destroy()
# 点击注册之后,会弹出这个窗口界面。
# 用户名框--这里输入用户名框。
# 新密码框--这里输入注册时候的密码
# 密码确认框
# 注册按钮
# 创建注册和登录按钮
bth1 = Button(win, text='登 录',command=usr_login)
bth1.place(x=150,y=230)
bth2 = Button(win, text='注 册', command=usr_sign_up)
bth2.place(x=250,y=230)
# 显示窗口
win.mainloop()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn