簡體   English   中英

從 flask python 中的 mysqlphp 獲取行的值

[英]Get value of row from mysqlphp in flask python

我有這樣的表:數據庫

我只想打印密碼,例如:

samer

我試過這個:

mysql = MySQL()
flask.config['MYSQL_HOST'] = 'localhost'
flask.config['MYSQL_USER'] = 'root'
flask.config['MYSQL_PASSWORD'] = ''
flask.config['MYSQL_DB'] = 'web'
mysql.init_app(flask)

@flask.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
    email = request.form['email']
    password = request.form['password']
    # print(password)
    cur = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
    cur.execute('SELECT * FROM users WHERE password=%s', (password,))
    user = cur.fetchall()
    print(user)
    # if password is wrong, user will be None else Dict
    if user is not None:
        print(user['password'])
    else:
        print("User not found")

但我收到此錯誤:

TypeError:元組索引必須是整數或切片,而不是 str

如果我使用,我可以打印結果:

for row in user:
    passw = row['password']

但我需要使用第一種方法,我該如何實現?

您需要用fetchone替換fetchall調用:

 cur = mysql.connection.cursor(MySQLdb.cursors.DictCursor)
 cur.execute('SELECT * FROM users WHERE password=%s', (password,))
 user = cur.fetchone()
 # if password is wrong, user will be None else Dict
 if user is not None:
     print(user['password'])
 else:
     print("User not found")

暫無
暫無

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

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