首页 > 解决方案 > Python 在数据库中查找特定值

问题描述

我正在创建一个 Web 应用程序登录页面,用户输入他们的登录信息,应用程序将获取他们的登录信息,将其与数据库中的内容进行比较,然后确定登录是否是注册用户。我开始做一个快速测试,看看我是否可以从数据库中获取值,但是我遇到的问题是,当我从我希望它找到的用户输入中输入特定值时,我不断得到一个错误说明该值需要是特定参数、行或元组。我正在使用 sql 服务器

@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'POST':
try:
connect = pypyodbc.connect('Driver={SQL server};Server=localhost;Database=capstone;uid=;pwd=')
cursor = connect.cursor()
_username = str(request.form['username'])
cursor.execute("SELECT * FROM login WHERE username= (%s)", _username)
dataUser = cursor.fetchone()[1]
 return(dataUser)
except Exception as e:
return (str(e))

标签: pythonsql-serverdatabaseweb-applications

解决方案


有几种方法可以做到这一点:

# using dictionary
values = {'username': _username, }
cursor.execute("SELECT * FROM login WHERE username=:username", values)

#using tuple:
values = (_username,)
cursor.execute("SELECT * FROM login WHERE username=? ", values)
# Using fetchone will return the object and not an array.
# No need for [1] in 'cursor.fetchone()[1]'
return cursor.fetchone()

推荐阅读