Я сделал простую регистрационную форму, используя tkinter и mongoengine. Но по какой-то причине значение, взятое из полей ввода tkinter, хранится как пустое или пустое в mongodb. Думаю, проблема в том, что переменная не можетвозьмите значение, введенное в поле ввода tkinter, но я не могу найти решение этой проблемы, поскольку код выглядит синтаксически правильным.
from tkinter import *
import tkinter.messagebox
from mongoengine import *
connect('demo')
class Registration(Document):
username = StringField(required=True,unique=True)
password = StringField(required=True)
def register():
if len(Registration.objects(username=name)) == 1:
tkinter.messagebox.showinfo("Oops!", "Username already taken")
else:
entry = Registration(
username=name,
password=pwd
)
entry.save()
tkinter.messagebox.showinfo("Notice", "Registered Successfully !")
# GUI
root = Tk()
root.title("Registration Demo")
frame = Frame(root,width=500,height=500)
frame.pack()
label1 = Label(frame,text="username")
label2 = Label(frame,text="password")
entry1 = Entry(frame)
entry2 = Entry(frame)
name = entry1.get()
pwd = entry2.get()
button = Button(frame,text="Register",command=register)
label1.grid(row=0,column=0,sticky=E)
label2.grid(row=1,column=0,sticky=E)
entry1.grid(row=0,column=1)
entry2.grid(row=1,column=1)
button.grid(columnspan=2)
root.mainloop()
А вот представление таблицы mongodb: Вывод Mongodb
Как видно из выходных данных, идентификатор создан, но поля имени пользователя и пароля не заполнены, хотя пользователь ввел ввод.