Ответ 1
Flask выбрасывает это исключение, потому что ваш auth
вид ничего не возвращает. Верните ответ из представления auth
:
return 'Some response'
Чтобы вернуть результаты MySQL, возможно, объедините строки в одну строку:
cur.execute("SELECT * FROM tbl_user WHERE username = '%s' " % username)
return '\n'.join([', '.join(r) for r in cur])
или определить шаблон и вернуть обработанный шаблон.
Обратите внимание, что вы действительно не хотите использовать интерполяцию строк для параметра username
, особенно в веб-приложении. Вместо этого используйте параметры SQL:
cur.execute("SELECT * FROM tbl_user WHERE username = %s", (username,))
Теперь клиент базы данных выполнит кавычки для вас и предотвратит атаки SQL-инъекций. Если вы используете строчную интерполяцию, это произойдет.
(Если это была достойная база данных (например, не MySQL), база данных могла бы взять теперь обобщенный оператор SQL и создать для него план запроса, а затем повторно использовать план снова и снова при выполнении этого запроса несколько раз, используя строку интерполяция, которую вы предотвратили бы.)