是否可以呈现模板并在同一路径中使用flask.jsonify
?
@app.route('/thankyou')
def thankyou():
db = get_db()
summary_cursor = db.execute('SELECT * FROM orders JOIN order_items USING (transaction_id) WHERE orders.transaction_id = (SELECT MAX(transaction_id) FROM orders)')
summary = summary_cursor.fetchall()
data = map(list, summary)
print data
return render_template('thankyou.html', summary = json.dumps(data))
现在我正在使用json.dumps
来序列化我的数据,但是它对它做了一些奇怪的事情。我想使用jsonify
,因为当我这样做的时候,我得到了一个非常漂亮的输出,似乎更适合使用:
@app.route('/thankyou')
def thankyou():
db = get_db()
summary_cursor = db.execute('SELECT * FROM orders JOIN order_items USING (transaction_id) WHERE orders.transaction_id = (SELECT MAX(transaction_id) FROM orders)')
summary = summary_cursor.fetchall()
data = map(list, summary)
print data
return jsonify(summary = data)
有没有办法把两者结合起来?
如果您需要在一个路由中为不同的情况返回不同的响应对象:
render_template
返回unicode
转换为有效的Response
和jsonify
返回已经Response
对象,因此您可以在同一个路由中使用这两个对象:如果需要在模板中呈现json:可以在模板中使用safe
tojson
过滤器。看我的另一个答案:https://stackoverflow.com/a/23039331/880326。如果需要返回带有呈现模板值的json:可以隐式呈现每个模板并设置response dict或list的值,那么只需使用jsonify。
相关问题 更多 >
编程相关推荐