Python находит конкретное значение в базе данных - PullRequest
0 голосов
/ 23 ноября 2018

Я создаю страницу входа в веб-приложение, где пользователь вводит свои данные для входа, а приложение берет их данные для входа, сравнивает их с данными в базе данных, а затем определяет, является ли имя пользователя зарегистрированным.Я начинаю с того, что делаю быстрый тест, чтобы посмотреть, смогу ли я получить значение из базы данных, однако проблема, с которой я сталкиваюсь, заключается в том, что когда я ввожу конкретное значение из пользовательского ввода, который я хочу найти, я продолжаю получатьошибка, указывающая, что значение должно быть определенным параметром, строкой или кортежем.Я использую сервер 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))

1 Ответ

0 голосов
/ 23 ноября 2018

Есть несколько способов сделать это:

# 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...