о процессе входа в Python - PullRequest
0 голосов
/ 02 апреля 2019

Я хочу войти на страницу графического интерфейса администратора, с помощью этого процесса входа я хочу открыть новое связанное окно GUI. Я создал базу данных "MY MINI PROJECT.DB" для этого, добавив имя пользователя и пароль в виде столбцов, и хочу получить и сопоставить данные из него. Но с моим кодом следующее окно открывается напрямую без проверки условия if.please help.i разочарован. Вот мой код.

def e():
    while True:
        USERNAME = StringVar()
        PASSWORD = StringVar()
        username = USERNAME.get()
        password = PASSWORD.get()
        db = sqlite3.connect('welcome.db')
        cr = db.cursor()
        if (USERNAME== "" and PASSWORD== ""):
            tkinter.messagebox.showinfo("ALERT","CANNOT BE BLANK")
        elif db:
            cr.execute("select USERNAME AND PASSWORD from ADMIN_LOGIN where USERNAME=? and PASSWORD=?"), (username,password))
            result = cr.fetchall()
            if result:
            for i in result:
                print("welcome"+i[2])
                break
            else:
                print("bye")
                tkinter.messagebox.showinfo("ALERT","NO RECORD FOUND")
                break
db.commit()
root.mainloop()

1 Ответ

0 голосов
/ 07 апреля 2019

Мне удалось войти в процесс после глубокого понимания концепции. Вот код.

        def admin_login():
            if ADMIN_USERNAME.get() == "" or ADMIN_PASSWORD.get() == "":
                l2.config(text="PLEASE COMPLETE THE REQUIRED FIELD!!", fg="red", bg="yellow", font=f7)
           else:
               c.execute("SELECT * FROM ADMIN_LOGIN WHERE ADMIN_USERNAME = ? AND ADMIN_PASSWORD = ?",
                       (ADMIN_USERNAME.get(), ADMIN_PASSWORD.get()))
               if c.fetchone() is not None:
                   e()
                   ADMIN_USERNAME.set("")
                   ADMIN_PASSWORD.set("")
               else:
                   l2.config(text="INVALID ADMIN USERNAME OR PASSWORD!", fg="red", bg="yellow", font=f7)
                   ADMIN_USERNAME.set("")
                   ADMIN_PASSWORD.set("")
           connn.commit()

Я сделал функцию ADMIN_LOGIN () внутри той же функции, которая создает страницу входа в систему. Ранее я былПопытка сделать обе функции по отдельности. Теперь это работает гладко. Спасибо.

...