簡體   English   中英

Python“TypeError:'str'對象不可調用”-我沒有在代碼中使用“str”

[英]Python "TypeError: 'str' object is not callable" - I'm not using "str" in code

我收到一個 TypeError: 'str' object is not callable 在以下以“exists”開頭的代碼段中:

@app.route('/passwordLoginForm1', methods=['GET','POST'])
def passwordLoginForm1():
    username = request.form['username']
    password = request.form['password']
    exists = db.get_passdetails(username,password)

    if exists == 'true':
            return render_template('pin.html') 
    else:
            return render_template('passwordsLogin2.html')

這是 get_passdetails 供參考:

def get_passdetails(username,password):
    cur=conn.cursor()
    cur.execute("SELECT *  FROM Password WHERE username = %s AND password = %s" (username, password))
    details = cur.fetchone()
    if details:
        return 'true'
    else:   
        return 'false

Python相對較新,因此將不勝感激

我相信錯誤實際上是在這個表達式中:

"SELECT *  FROM Password WHERE username = %s AND password = %s" (username, password)

由於字符串和(...)之間沒有運算符,因此它被解釋為對字符串的函數調用(由於字符串不是函數,因此自然會產生錯誤)。 你的意思是在兩者之間加上一個%

利用 ? 而不是 %s 並且不要忘記添加逗號,

cur.execute("SELECT *  FROM Password WHERE username = ? AND password = ?" ,(username, password))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM