我目前正在使用python和Flask来查询数据库。我有以下功能:`
def get_details(username):
conn = database_connect()
if(conn is None):
return ERROR_CODE
cur = conn.cursor()
val = None
try:
cur.execute("""SELECT username, name, age, address
FROM users
WHERE username = %s;""",(username))
val = cur.fetchone()
except:
print("failed to retrieve")
cur.close()
conn.close()
return val
查询本身有问题吗?我该如何编码?
答案 0 :(得分:3)
将查询参数传递给查询的方式存在问题。将它们传递给元组:
cur.execute("""SELECT username, name, age, address
FROM users
WHERE username = %s""", (username, ))
# comma is important HERE^
作为旁注,请考虑使用ORM而不是直接访问数据库并手动构建SQL查询。有一个相关的软件包供您探索:flask-sqlalchemy
。