SQLite 데이터베이스에서 선택한 값이 다른 변수의 동일한 문자열과 같지 않은 파이썬 변수에 입력되지 않는 이유는 무엇입니까?

윌 K

저는 초보 프로그래머이며 flask와 SQLite3를 사용하는 로그인 시스템을 다루고 있습니다. 사용자가 HTML 양식에서 정보를 입력하면 해당 양식이 logins라는 데이터베이스 테이블에 저장됩니다. 입력은 훌륭하게 작동하고 데이터베이스에 데이터를 입력하지만 데이터베이스에서 데이터를 선택하려고 할 때 다음과 같이 특정 값을 인쇄 할 수 있습니다.

rows = c.execute("SELECT password FROM logins")

여기서 암호는 데이터베이스의 열입니다. 그 부분은 잘 작동합니다. 그러나 예를 들어 아래 userCheck와 같이 파이썬 변수에 단일 셀을 넣으려고 할 때 두 값을 비교할 때 if 논리가 작동하지 않습니다. 사용자 이름 userCheck와 암호 passCheck가 모두 동일한 경우 여전히 True가 아닙니다.

@app.route("/login", methods=["GET","POST"])
def login():
    if request.method == "GET":
        return render_template("login.html")
    else:
        username = request.form.get("username")
        password = request.form.get("password")
        userCheck = c.execute("SELECT password FROM logins WHERE username = (?)", (username,))
        passCheck = c.execute("SELECT username FROM logins WHERE password = (?)", (password,))
        if username == userCheck and password == passCheck:
            return redirect("/")
        else: 
            error = "Username and Password don't match"
    return render_template("login.html", error=error)

나는 이것에 조금이라도 붙어있어 어떤 도움이 굉장 할 것입니다!

IoaTzimas

아래와 같이 데이터베이스 결과를 가져와야합니다.

userCheck = c.execute("SELECT password FROM logins WHERE username = (?)", (username,)).fetchall()[0][0]
passCheck = c.execute("SELECT username FROM logins WHERE password = (?)", (password,)).fetchall()[0][0]

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관