Hướng dẫn how do i match a username and password for a python database? - làm cách nào để khớp tên người dùng và mật khẩu cho cơ sở dữ liệu python?

Xin chào vì vậy tôi đã làm việc trong dự án này khoảng một ngày nay (mới đến Python và MySQL) vì vậy câu hỏi của tôi là làm thế nào tôi có thể xem liệu thông tin đăng nhập của người dùng đầu vào trong hộp văn bản đã là người dùng đã đăng ký?

Cho đến nay tôi đã quản lý để kết nối nó với cơ sở dữ liệu và lưu trữ một số giá trị bên trong cơ sở dữ liệu nhưng tôi dường như không thể tìm ra cách tôi có thể quét cơ sở dữ liệu đó và xem liệu thông tin người dùng có hợp lệ khi nhấn nút đăng nhập không.

from tkinter import*
from tkinter import messagebox
import mysql.connector
import time
import datetime
import random

w = 300
h = 2

def register_user():

    global username_info
    global password_info

    if len(username.get()) == 0 and len(password.get()) == 0:
        print("Please fill in the Missing Info")

    if len(username.get()) == 0 and len(password.get()) != 0 :
            print("Please Enter a Username")
    elif len(username.get()) != 0 and len(password.get()) == 0:
                    print("Please enter a Password")


    else:
        username_info = username.get()
        password_info = password.get()

        mydb = mysql.connector.connect(
            host="localhost",
            user="root",
            passwd="root",
            database="loginsystem"
        )
        mycursor = mydb.cursor()
        sqlFormula = "INSERT INTO users (Username, Password) VALUES (%s, %s)"
        insertvar = (username_info, password_info)
        user1 = ("Joshua", "Cuyugan")
        mycursor.execute(sqlFormula, insertvar)
        mydb.commit()

        username.set("")
        password.set("")

def register():
    global screen1

    screen.withdraw()
    screen1 = Toplevel(screen)
    screen1.title("Registration")
    screen1.geometry("500x250+700+350")

    global username
    global password
    global username_entry
    global password_entry

    username = StringVar()
    password = StringVar()

    Label(screen1, text = " Please Enter Your Details Below", bg = "black", width = w , height = h, font = ("Calibri", 20) , fg = "white").pack()
    Label(screen1, text = "").pack()
    Label(screen1, text = "Username").place(x=220, y=85)
    username_entry = Entry(screen1, textvariable = username, width="50").place(x=100, y=110)
    Label(screen1, text = "Password").place(x=220, y=135)
    password_entry = Entry(screen1, textvariable = password, width="50").place(x=100, y=160)
    Button(screen1, text= "Register", height="1", width="20", command = register_user).place(x=80, y=200)
    Button(screen1, text="Cancel", height="1", width="20", command= on_closereg).place(x=270, y=200)


    screen1.protocol("WM_DELETE_WINDOW", on_closereg)



def login():
    global screen2

    mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        passwd="root",
        database="loginsystem"
    )
    mycursor = mydb.cursor()
    sql_select_Query = "select * from users"
    mycursor.execute(sql_select_Query)
    records = mycursor.fetchall()
    for row in records:
        print("Username" , row[1],)
        print("Password", row[2], "\n" )
        mycursor.close()

    screen.withdraw()
    screen2 = Toplevel(screen)
    screen2.title("HOT or SUPER HOT")
    screen2.geometry("800x600+550+220")


    screen2.protocol("WM_DELETE_WINDOW", on_close)

def checker():
    if len(username.get()) == 0 and len(password.get()) == 0:
        print("Please fill in the Missing Info")


def on_close():
    screen2.withdraw()
    screen.update()
    screen.deiconify()
    screen.lift()

def on_closereg():
    screen1.withdraw()
    screen.update()
    screen.deiconify()
    screen.lift()

def verify():
    global name
    global userlogcred
    global userpascred

    userlogcred = username_verify.get()
    userpascred = password_verify.get()

    loadname = ("SELECT Username FROM users WHERE Username =%s")
    loadpass = ("SELECT Password FFROM users WHERE Password =%s")

    mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        passwd="root",
        database="loginsystem"
    )
    mycursor = mydb.cursor()

    if len(username_verify.get()) == 0 and len(password_verify.get()) == 0:
        print("Please fill in the Missing Info")
    if len(username_verify.get()) == 0 and len(password_verify.get()) != 0 :
        print("Please Enter a Username")
    elif len(username_verify.get()) != 0 and len(password_verify.get()) == 0:
        print("Please enter a Password")

    else:
        mycursor.execute(loadname, userlogcred)
        mycursor.execute(loadpass, userpascred)
        logincheck = mycursor.fetchone()
        loginpasscheck = mycursor.fetchone()
        if logincheck is None:
            print("Sorry, could not find you in the database\nOr it just isn't working")
        if logincheck is not None and loginpasscheck is None:
            print("Please Enter your Password")
        elif logincheck is None and loginpasscheck is not None:
            print("Please enter Your Username")
        else:
            print("pass\nSuccessfully loaded {} from the database".format(username_verify.get()))



def main_Screen():

    global screen

    screen = Tk()
    screen.geometry("600x300+650+350")
    screen.title("Login System")


    Label(text = "Login System" , bg = "black", width = w , height = h, font = ("Calibri", 20) , fg = "white").pack()
    Label(text = "").pack()
    Button(text = "Login", height = h, width = "30", command = verify).place(x=50 , y=200)
    Label(text = "").pack()
    Button(text = "Register" ,height = h, width = "30", command = register).place(x=320 , y=200)


    global username_verify
    global password_verify

    username_verify = StringVar()
    password_verify = StringVar()
    Label(screen, text = "Username").place(x=265, y = 90)
    username_entry1 = Entry(screen, textvariable = username_verify, width = "80").place(x=57, y=110)
    Label(screen, text="Password").place(x=267, y=140)
    password_entry1 = Entry(screen, textvariable = password_verify, width = "80").place(x=57, y=160)

    screen.mainloop()


main_Screen()

print("Hello World")

Cập nhật Tôi đã tìm thấy mã này và tôi đang cố gắng áp dụng nó vào dự án của mình trong đó trong mã này so sánh giá trị đầu vào bên trong hộp văn bản vào dữ liệu cơ sở dữ liệu và nó kiểm tra xem dữ liệu đã có mặt nếu chúng được gửi đến một biểu mẫu khác .

def verify():
    global name

    loadname = ("SELECT Username FROM users WHERE Username =%s")
    loadpass = ("SELECT Password FFROM users WHERE Password = %s")

    mydb = mysql.connector.connect(
        host="localhost",
        user="root",
        passwd="root",
        database="loginsystem"
    )
    mycursor = mydb.cursor()

    if len(username_verify.get()) == 0 and len(password_verify.get()) == 0:
        print("Please fill in the Missing Info")

    if len(username_verify.get()) == 0 and len(password_verify.get()) != 0 :
            print("Please Enter a Username")
    elif len(username_verify.get()) != 0 and len(password_verify.get()) == 0:
                    print("Please enter a Password")

    else:
        mycursor.execute(loadname, username_verify.get())
        mycursor.execute(loadpass, password_verify.get())
        logincheck = mycursor.fetchone()
        loginpasscheck = mycursor.fetchone()
        if logincheck is None:
            print("Sorry, could not find you in the database\nOr it just isn't working")
        if logincheck is not None and loginpasscheck is None:
            print("Please Enter your Password")
        elif logincheck is None and loginpasscheck is not None:
            print("Please enter Your Username")
        else:
            print("pass\nSuccessfully loaded {} from the database".format(login))

Nhưng tôi đã gặp ERRO này xin vui lòng giúp đỡ.

Traceback (most recent call last):
  File "C:\Users\lenovo\AppData\Local\Programs\Python\Python37-32\lib\tkinter\__init__.py", line 1705, in __call__
    return self.func(*args)
  File "C:/Users/lenovo/PycharmProjects/Pylog/App.py", line 141, in verify
    mycursor.execute(loadname, username_verify.get())
  File "C:\Users\lenovo\PycharmProjects\Pylog\venv\lib\site-packages\mysql\connector\cursor.py", line 569, in execute
    self._handle_result(self._connection.cmd_query(stmt))
  File "C:\Users\lenovo\PycharmProjects\Pylog\venv\lib\site-packages\mysql\connector\connection.py", line 553, in cmd_query
    result = self._handle_result(self._send_cmd(ServerCmd.QUERY, query))
  File "C:\Users\lenovo\PycharmProjects\Pylog\venv\lib\site-packages\mysql\connector\connection.py", line 442, in _handle_result
    raise errors.get_exception(packet)
mysql.connector.errors.ProgrammingError: 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '%s' at line 1
Hello World

Cập nhật Tôi đặt các giá trị username_verify.get() vào các biến vẫn không hoạt động và nó vẫn đăng cùng một lỗi.

Làm cách nào để kiểm tra xem tên người dùng và mật khẩu có khớp với các giá trị cơ sở dữ liệu trong Python không?

Kiểm tra thông tin đăng nhập với python và sqlite f "chọn tên người dùng từ người dùng trong đó tên người dùng = '{username}' và password = '{password}'; Cơ sở dữ liệu và in một tin nhắn người dùng cho phù hợp.SELECT username from users WHERE username='{username}' AND password = '{password}'; Now we have the ingredients for a simple Python script to check whether a username/password combination exists in the database and print a user message accordingly.

Làm cách nào để khớp tên người dùng và mật khẩu cơ sở dữ liệu?

Tạo một tệp có tên Connect. PHP để thực hiện kết nối cơ sở dữ liệu. Đối tượng kết nối được trả về biến $ Conn. Tên của cơ sở dữ liệu là kiểm tra ...
Đi trên localhost/phpmyadmin ..
Tạo cơ sở dữ liệu với kiểm tra tên ..
Bây giờ bấm vào SQL và viết mã truy vấn được đề cập dưới đây ..

Làm cách nào để khớp tên người dùng và mật khẩu trong Python?

Kiểm tra với tên người dùng chính nếu tên người dùng trong username_password: Nếu người dùng == "mert" và password == username_password [Tên người dùng]: in ("Chào mừng Sir")if username == "Mert" and password == username_password[username]: print("Welcome Sir") else: print("You're not authorized!")

Làm cách nào để khớp với mật khẩu trong Python?

Điều kiện chính để xác thực mật khẩu:..
Tối thiểu 8 ký tự ..
Bảng chữ cái phải nằm giữa [A-Z].
Ít nhất một bảng chữ cái nên có trường hợp trên [A-Z].
Ít nhất 1 số hoặc chữ số giữa [0-9] ..
Ít nhất 1 ký tự từ [_ hoặc @ hoặc $] ..