我正在创建一个Web应用程序登录页面,用户在其中输入他们的登录信息,该应用程序将获取他们的登录信息,将其与数据库中的信息进行比较,然后确定该登录名是否为注册用户。我首先进行快速测试以查看是否可以从数据库中获取值,但是我遇到的问题是,当我从希望输入的用户输入中输入特定值时,会不断获取错误,指出该值必须是特定的参数,行或元组。我正在使用SQL Server
@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))
答案 0 :(得分:0)
您可以通过以下几种方式进行此操作:
# 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()