From 955e3487fb8d712309d28c5972448e6e0fd970c7 Mon Sep 17 00:00:00 2001
From: BellCodeEditor <bellcode_dev@bell.ai>
Date: Sat, 8 May 2021 18:54:48 +0800
Subject: [PATCH] auto save

---
 my_app.py | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------
 user.txt  |  2 +-
 2 files changed, 65 insertions(+), 28 deletions(-)

diff --git a/my_app.py b/my_app.py
index 3db7fe7..63c8265 100644
--- a/my_app.py
+++ b/my_app.py
@@ -1,17 +1,52 @@
 import tkinter
+from tkinter import messagebox
+import json
+
+with open('user.txt', 'r', encoding='utf-8')as f:
+    info = f.read()
+    users = json.loads(info)
+
 
 def login_to_reg():    # 登录界面转注册界面
-    pass
+    app_login.root.destroy()
+    global app_reg  # 全局变量
+    app_reg = My_register()
+    app_reg.show()
+
 
 def reg_to_login():   # 注册界面转登录界面
-    pass
+    app_reg.root.destroy()
+    global app_login
+    app_login = My_login()
+    app_login.show()
+
 
 def register():     # 注册验证
-    pass
+    name, password1, password2 = app_reg.get_input()
+    if name == '' or password1 == '' or password2 == '':
+        messagebox.showwarning('警告', '请填写完整信息')
+    elif name in users:
+        messagebox.showerror('错误', '用户名已经存在')
+    elif password1 != password2:
+        messagebox.showerror('错误', '两次密码不一致!')
+    else:
+        users[name] = password1
+        content = json.dumps(users)
+        with open('user.txt', 'w', encoding='utf-8')as file:
+            file.write(content)
+        # 注册成功,跳到登录页面
+        messagebox.showinfo('成功', '注册成功')
+        reg_to_login()
 
-def login():    # 登录验证
-    pass    
 
+def login():    # 登录验证
+    name, password = app_login.get_input()
+    paw = users.get(name)
+    if paw == password:
+        messagebox.showinfo('成功','登录成功')
+    else:
+        messagebox.showerror('错误','账号或密码有误!')
+        
 class My_login():       # 登录窗口
     def __init__(self):
         self.root = tkinter.Tk()
@@ -21,30 +56,30 @@ class My_login():       # 登录窗口
 
     def show(self):         # 登录界面的所有控件
         # Label文本标签,界面提示信息
-        l = tkinter.Label(self.root, text='您好!请登录', bg='green', 
-            font=('宋体', 15), width=40, height=2)
+        l = tkinter.Label(self.root, text='您好!请登录', bg='green',
+                          font=('宋体', 15), width=40, height=2)
         l.place(x=0, y=0)
         l = tkinter.Label(self.root, text='用户名:', font=("宋体", 12),
-            fg="black")
+                          fg="black")
         l.place(x=50, y=80)
-        l = tkinter.Label(self.root, text='密  码:', font=("宋体", 12), 
-            fg="black")
+        l = tkinter.Label(self.root, text='密  码:', font=("宋体", 12),
+                          fg="black")
         l.place(x=50, y=140)
 
         # Entry单行文本输入框:用户名、密码
-        self.e1 = tkinter.Entry(self.root, show=None, font=('宋体', 14), 
-                  bg="light grey", width=18)  # 显示成明文形式
+        self.e1 = tkinter.Entry(self.root, show=None, font=('宋体', 14),
+                                bg="light grey", width=18)  # 显示成明文形式
         self.e2 = tkinter.Entry(self.root, show='*', font=('宋体', 14),
-                  width=18)  # 显示成密文形式
+                                width=18)  # 显示成密文形式
         self.e1.place(x=120, y=80)
         self.e2.place(x=120, y=140)
 
         # 登录、注册按钮
         button1 = tkinter.Button(self.root, text='登录', bg="lightblue",
-                  fg="black", width=15, command=login)
+                                 fg="black", width=15, command=login)
         button1.place(x=60, y=220)
         button1 = tkinter.Button(self.root, text='注册', bg="lightgreen",
-                  fg="black", width=15, command=login_to_reg)
+                                 fg="black", width=15, command=login_to_reg)
         button1.place(x=230, y=220)
         # 进入消息循环,监听事件
         self.root.mainloop()
@@ -54,45 +89,46 @@ class My_login():       # 登录窗口
         self.password = self.e2.get()
         return self.name, self.password
 
+
 class My_register():        # 注册窗口
     def __init__(self):
         self.root = tkinter.Tk()
         self.root.title("注册窗口")
         self.root.geometry('400x320+500+300')
         self.root.resizable(width=False, height=False)  # True可以拉伸,False不能拉伸
-   
+
     def show(self):     # 注册界面的所有控件
         # 用户名、密码、确认密码输入框
-        self.e1 = tkinter.Entry(self.root, show=None, font=('宋体', 14), 
-                  bg="light grey", width=18)  # 显示成明文形式
+        self.e1 = tkinter.Entry(self.root, show=None, font=('宋体', 14),
+                                bg="light grey", width=18)  # 显示成明文形式
         self.e1.place(x=140, y=80)
         self.e2 = tkinter.Entry(self.root, show='*', font=('宋体', 14),
-                  width=18)
+                                width=18)
         self.e2.place(x=140, y=140)
         self.e3 = tkinter.Entry(self.root, show='*', font=('宋体', 14),
-                  width=18)
+                                width=18)
         self.e3.place(x=140, y=200)
 
         # Label文本标签,窗口界面文字:用户名、密码、确认密码
         lab = tkinter.Label(self.root, text='您好!请填写注册信息',
-              font=('宋体', 15),fg="black", width=40, height=2, bg="green")
+                            font=('宋体', 15), fg="black", width=40, height=2, bg="green")
         lab.place(x=0, y=0)
         lab1 = tkinter.Label(self.root, text='用户名:', font=("宋体", 12),
-               fg="black")
+                             fg="black")
         lab1.place(x=60, y=80)
         lab2 = tkinter.Label(self.root, text='密  码:', font=("宋体", 12),
-               fg="black")
+                             fg="black")
         lab2.place(x=60, y=140)
         lab3 = tkinter.Label(self.root, text='确认密码:', font=("宋体", 12),
-               fg="black")
+                             fg="black")
         lab3.place(x=50, y=200)
 
         # 注册界面的提交、取消按钮
         button1 = tkinter.Button(self.root, text='提交', bg="lightblue",
-                  width=15,command=register)
+                                 width=15, command=register)
         button1.place(x=230, y=250)
         button1 = tkinter.Button(self.root, text='取消', bg="lightgreen",
-                  width=15, command=reg_to_login)
+                                 width=15, command=reg_to_login)
         button1.place(x=80, y=250)
         # 进入消息循环
         self.root.mainloop()
@@ -103,5 +139,6 @@ class My_register():        # 注册窗口
         self.password2 = self.e3.get()
         return self.name, self.password1, self.password2
 
+
 app_login = My_login()
-app_login.show()
\ No newline at end of file
+app_login.show()
diff --git a/user.txt b/user.txt
index 6a2553e..5d0c3de 100644
--- a/user.txt
+++ b/user.txt
@@ -1 +1 @@
-{"admin": "123456"}
\ No newline at end of file
+{"admin": "123456", "python": "123"}
\ No newline at end of file
--
libgit2 0.25.0