Python View函数未返回响应
我想向mysql发送一个查询并获取一个数组。但不管我怎么做,我都不能让它工作。这是我的密码:Python View函数未返回响应,python,sql,flask,Python,Sql,Flask,我想向mysql发送一个查询并获取一个数组。但不管我怎么做,我都不能让它工作。这是我的密码: @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 WHE
@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]
它总是说,
查看函数没有返回响应。我做错了什么?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
参数使用字符串插值,尤其是在web应用程序中。请改用SQL参数:
cur.execute("SELECT * FROM tbl_user WHERE username = %s", (username,))
现在,数据库客户端将为您进行报价,并防止SQL注入攻击。如果使用字符串插值
(如果这是一个像样的数据库(例如,不是MySQL),数据库可以使用现在通用的SQL语句并为其创建一个查询计划,然后在多次执行该查询时反复使用该计划;使用字符串插值可以防止这种情况发生。)1)修复您发布的代码中的缩进,2)在数据库中运行相同的查询,看看会说些什么请给我们完整的回溯,以及您使用的web框架。@MartijnPieters我尝试一下Flask和MySQL:)@JonClements:ifview
指的是auth
方法…我使用Flask,你是对的,我应该删除它method@Gandalf你似乎还不熟悉这一点-我建议你使用ORM-这将使生活更轻松-阅读一下是的,我是python初学者,我会接受你的建议,谢谢:)确实如此!我希望这里有一些小Bobby表。我仍然可以解决我的问题。我想做的是,将post数据与数据库中的行进行比较。因此,我应该使用给定的用户名发送一个查询,并获得结果,而不是比较密码。但无法对sql结果执行任何操作。有人可以吗help@Gandalf当前位置我们正在步入“太广阔”的领域。您需要找到一个关于Python和SQL查询的好教程。