猫史档案馆


【Python作品分享】01登录注册

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


【作品展示】

center_image

 

【作品介绍】

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


回复

上一页1 页 / 共 1下一页
叫我曲奇wyq叫我曲奇wyq

woc,6!

点赞0


评论