Python登录注册功能

# -*- coding: utf-8 -*-
"""
Created on Thu Jul 25 13:43:28 2024

"""

from tkinter import *
from tkinter import messagebox
from main import *  # 导入“功能导航”(main.py)
import csv  # 导入CSV文件操作库

# 全局变量
usr = ''
pwd = ''
exist = False  # 修正为正确的布尔值表示

def form_logreg():
    def check():    # 验证用户功能
        global usr, pwd, exist
        with open(r'data/user.csv', 'r') as fu:
            reader = csv.reader(fu)
            for row in reader:
                usr, pwd = row
                if usr == entry_usr.get():
                    exist = True
                    break
            # 修正:关闭文件
            fu.close()

    def login():        # 登录功能
        check()
        if exist == False:  # 修正为正确的布尔值比较
            messagebox.showwarning('用户不存在')
        else:
            if pwd != entry_pwd.get():
                messagebox.showwarning('密码错误')
            else:
                master.destroy()  # 修正:关闭窗体
                appvar.setID(usr)  # 保存当前登录用户的账号
                form_main()  # 进入商品功能导航的窗体

    def register():  # 注册功能
        check()
        if exist == True:  # 修正为正确的布尔值比较
            messagebox.showwarning('账号已经注册')
        else:
            tup_user = (entry_usr.get(), entry_pwd.get())
            with open(r'data/user.csv', 'a') as fu:   # 追加到文件尾部
                writer = csv.writer(fu)
                writer.writerow(tup_user)
            # 修正:关闭文件
            fu.close()
            messagebox.showinfo('注册成功!')

    # 创建主窗体
    master = Tk()
    master.geometry('320x250')  # 修正:几何参数格式
    master.title('用户登录')

    # 创建用户名输入框
    Label(master, text='用户名:').pack()
    entry_usr = Entry(master)
    entry_usr.pack()

    # 创建密码输入框
    Label(master, text='密码:').pack()
    entry_pwd = Entry(master, show='*')
    entry_pwd.pack()

    # 创建登录按钮
    Button(master, text='登录', command=login).pack()

    # 创建注册按钮
    Button(master, text='注册', command=register).pack()

    # 运行主事件循环
    master.mainloop()

# 假设 form_main 是你之前定义的函数,这里调用它来模拟进入主窗体
def form_main():
    print("进入主窗体")

# 假设 appvar 是你之前定义的全局变量或类,这里调用它来模拟设置用户ID
class appvar:
    @staticmethod
    def setID(id):
        print(f"用户ID设置为:{id}")

# 运行登录注册窗体
form_logreg()

#python#
Python 文章被收录于专栏

Python由荷兰数学和计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言,随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务