簡體   English   中英

在Python中從SQL查詢創建變量

[英]Create a Variable from SQL query in Python

我正在嘗試創建一個非常基本的登錄。 為此,我需要在“users”表中存儲與“username”匹配的“id”。 無論我嘗試過什么,它都只會給我一份清單。

我正在關注一個在線課程,我不能使用大多數SQLAlchemy快捷方式 - 只是老式的SQL命令。 我正在使用Python 3和Flask來構建它。

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

def login():
if request.method == "GET":
    return render_template("login.html")

if request.method == "POST":
    #find user in users table
    username = request.form["username"]
    rows = db.execute("SELECT id FROM users WHERE username=:username",{"username": username}).fetchall()
    session["user_id"] = rows.id
    return render_template("success.html", rows=rows)

如果id為1,則字面上返回:'(1,)'

你必須使用fetchall()。 例如:

rows = db.execute("""SELECT id FROM users WHERE username='%s'"""
                 %(str(username)))
username_string = rows.fetchall()

#You should have a list dictionary. 

如果你想從username_string中獲取ID,你可以這樣做:

user_id = username_string[0]
user_id_final = user_id['id']
  1. 我在這里做的是創建了行變量,它只是在db.execute函數中使用“SELECT”語句的結果。

  2. 我們存儲了結果,該結果應該是與該用戶名(1)對應的id。 我們使用fetchall方法來抓取它。 我們將它存儲在一個名為username_string的變量中(或者你可以稱之為id_string)。

  3. 我們創建了另一個名為user_id的變量,它被設置為等於username_string中的第一個索引。 這應該為您提供您正在尋找的ID的鍵/值對。

  4. 最后一個變量是user_id_final,它將'id'的值存儲在鍵/值對中。 如果那是與該用戶名對應的ID,那么它應該等於'1',你應該完成。

暫無
暫無

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

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