flask render_template返回字符串的ascii代码

时间:2016-02-02 09:45:57

标签: python json flask

" test.html"的内容是

{{data}}

当我使用

渲染它时
render_template('test.html',data=u'{"a":12,"b":34}')

结果是

{& #34;a& #34;:12,& #34;b& #34;:34} //I add whitespace between & and # for display

当我用

渲染它时
render_template_string('{{data}}',data=u'{"a":12,"b":34}')

结果是

{"a":12,"b":34}

在JavaScript中使用JSON.parse()处理第一个结果字符串很困难。这是烧瓶的错误吗?或者我是以错误的方式处理它?<​​/ p>

2 个答案:

答案 0 :(得分:2)

当你拨打render_template时,Jinja会自动转义字符串。要停止此操作,请使用safe过滤器:

{{ data|safe }}

答案 1 :(得分:0)

问题是,从文件加载时,值将被转义,这是预期的。但是,我建议的是,如果您要返回JSON,请执行以下操作,例如:

from flask import jsonify

@app.route('/get_data')
def get_data():
    return jsonify({"a":12,"b":34})

http://flask.pocoo.org/docs/0.10/api/#flask.json.jsonify