这是我的部分。我正在制作一个 AI 聊天机器人,只是在登录界面和草绘内容上工作。我也是 .json 的初学者,所以这有助于我学习。
也许我也会解释一下。
首先,创建一个.json 文件,命名为您喜欢的任何名称。确保文件与代码位于同一目录路径/文件夹中,或者您可以导入 os 来执行此操作。
接下来导入 Tkinter。它可能是也可能不是内置模块,但试试看。还可以导入 JSON,不需要时间,但可以提供帮助。
import tkinter as tk
import json
import time
接下来,为这一切创建一个窗口。如有必要,编辑信息。
app = tk.Tk()
app.wm_title("Sign Up or Log in")
app.geometry("500x300")
如果需要,添加标签。
k = tk.Label(text = "Hello there, I'm Lola! We'll talk soon. Just let me know your credentials!\nJust click on sign up below so that I can identify you!", justify="left")
k.pack()
添加一个按钮供用户点击。
sign_in = tk.Button(text="Sign Up or Log In", command=signin)
sign_in.pack()
我们需要定义上面用于按钮的签名函数。所以在我们创建按钮之前,我们先定义它。它有点长,所以我将解释一般部分。
在我们检查之前,我们会先获取他们的详细信息
def signin():
em = tk.Label(text="Email:")
em.pack()
en1 = tk.Entry(width=50)
en1.pack()
pa = tk.Label(text="Password:")
pa.pack()
en2 = tk.Entry(width=50)
en2.pack()
na = tk.Label(text="Name:")
na.pack()
en3 = tk.Entry(width=50)
en3.pack()
接下来,让我们定义提交函数并创建按钮。这就是 json 的用武之地。我们首先获取详细信息并将它们存储在像这样的变量中。
def submit():
email = str(en1.get())
password = str(en2.get())
name = str(en3.get())
login = tk.Label(text="")
那么,我们不要忘记先读取json文件
with open("info.json", "r") as f:
users = json.load(f)
现在让我们进行检查
if email in users:
login.config(text="You already have an account! Click log in please!")
loginn = tk.Button(text = "Log in", command = login)
else:
users[email] = {}
users[email]["Password"] = password
users[email]["Name"] = name
with open("info.json", "w") as f:
json.dump(users, f)
login.config(text=f"You've successfully created an account. Just click on log in below! Credentials:\nEmail: {email}\nPassword: {password}\nName: {name}")
login.pack()
现在,我们将定义登录。一切都非常相似
def loggin():
email = str(en1.get())
password = str(en2.get())
name = str(en3.get())
login = tk.Label(text="")
with open("info.json", "r") as f:
users = json.load(f)
if not email in users:
login.config(text="You don't have an account, sign up instead!")
else:
passs = users[email]["Password"]
if password != passs:
login.config(text="Wrong credentials. It doesn't match what I've recorded")
else:
login.config(text="Success! You've logged in. Please wait, as the software is still in the early stage of development.\nYou might have to sign up again later. I'll let you know soon.")
login.pack()
loginn = tk.Button(text = "Log in", command = loggin)
loginn.pack()
最后,这一行代码将决定一切是否正常。确保将它放在最后的代码中。
window.mainloop()
到此结束,请不要复制,我工作了 5 个小时才明白这一点。我和其他人一样是初学者,但请不要复制此内容。用它作为例子来理解。即使你这样做,请给予信任。但大多数情况下,不要。