La función de vista no devolvió una respuesta

Quiero enviar una consulta a mysql y buscar una matriz. Pero sin embargo lo hago, no puedo hacer que funcione. Aquí está mi código:

@app.route('/auth',methods=['GET','POST']) def auth(): username = request.form['username'] password = request.form['password'] cur = db.cursor() cur.execute("SELECT * FROM tbl_user WHERE username = '%s' " % username) results = cur.fetchall() for row in results: print row[0] 

Siempre dice, la view function did not return a response . ¿Qué estoy haciendo mal?

Frasco lanza esta excepción porque tu vista de auth no devolvió nada. Devuelva una respuesta de su vista de auth :

 return 'Some response' 

Para devolver los resultados de MySQL, tal vez unir las filas en una sola cadena:

 cur.execute("SELECT * FROM tbl_user WHERE username = '%s' " % username) return '\n'.join([', '.join(r) for r in cur]) 

o defina una plantilla y devuelva la plantilla renderizada .

Tenga en cuenta que realmente no desea utilizar la interpolación de cadenas para su parámetro de username , especialmente en una aplicación web. Utilice parámetros SQL en su lugar:

 cur.execute("SELECT * FROM tbl_user WHERE username = %s", (username,)) 

Ahora el cliente de la base de datos hará el presupuesto por usted y evitará los ataques de inyección de SQL. Si utiliza la interpolación de cadenas, esto sucederá .

(Si se tratara de una base de datos decente (por ejemplo, no de MySQL), la base de datos podría tomar la statement SQL ahora genérica y crear un plan de consulta para ella, luego reutilizar el plan una y otra vez a medida que ejecuta la consulta varias veces; utilizando la interpolación de cadenas, d prevenir eso)