Python mysql.connector - cursor.execute

我想使用 Flask 编写登录页面,但是我从数据库中获取的用户值始终是 NoneType。即使在登录表单中输入的用户名与数据库中的用户名相同。我想我的 SQL 查询可能有错误,但我不知道它在哪里。我感谢您的帮助!


这是登录函数,该函数应返回在数据库中找到的行数。


@app.route("/login", methods=["GET", "POST"])

def login():

    if request.method == "POST":

        #get form fields

        username = request.form["username"]

        password_candidate = request.form["password"]


        result = sqlhandler.mycursor.execute("SELECT * FROM users WHERE username = %s", [username])

        print(result) #result is a NoneType

这是 sqlhandler 的类:


class mySQLHandler():

    def __init__(self):

        self.db = mysql.connector.connect(

            host="localhost",

            user="root",

            passwd="notrealpassword ;)",

            db="testdb"

        )


        self.mycursor = self.db.cursor()

我真的很感激,如果有人能告诉我,为什么执行语句返回一个 NoneType。我已经检查了 mycursor.execute() 中的代码是否在 MySQL 工作台中工作,并且确实如此。


呼啦一阵风
浏览 308回答 1
1回答

慕标琳琳

查询执行和获取分为两个独立的步骤。执行查询后从游标中获取数据:sqlhandler.mycursor.execute("""    SELECT *     FROM users     WHERE username = %s""", [username])data = sqlhandler.mycursor.fetchone()print(data)参考:cursor.execute()cursor.fetchone()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python