我需要在flask中使用python构建一个路由,允许通过uri传递3个参数,这样我就可以在mysql查询中使用这3个参数。
数据库表的3列中各有3个参数,最终结果查询类似于:
Select * from maintable where (field1= param1 and field2 = param2 and field3 = param3);
我希望uri看起来像:http://my.api.com/search/123/345/dd5432
python代码如下所示
@app.route('/search/param1/param2/param3')
def get():
cur = mysql.connect().cursor()
cur.execute('''select * from maindb.maintable''')
r = [dict((cur.description[i][0], value)
for i, value in enumerate(row)) for row in cur.fetchall()]
return jsonify({'results' : r})
到目前为止,我已经能够成功地传递1个参数,并使用它来查询数据库中的1列。
1条答案
按热度按时间piwo6bdm1#
首先,您需要更改路由规则,以便能够提取其中的一部分。然后需要在sql查询中发送这些参数。但是,不要直接从用户输入构建sql查询,因为它可能会引入sql注入漏洞。使用占位符,然后将参数作为元组提交给db游标
execute()
: