我在使用flask.jsonify函数从字典输入中输出格式化的json响应时遇到了一些麻烦,如此处所述。
我的代码似乎正在返回Response对象,而不是我想要的格式化json对象。
我有
@app.route('/rparser', methods=['GET', 'POST']) def rparser(): form = ParserForm(request.form) if request.method=='POST': result = jsonify(**dict) return render_template('rparser.html', form=form, result=result) else: return render_template('rparser.html', form=form)
其中dict是从调用函数返回的字典对象。
在我的模板中,我有:
(form up here) {% if result %} {{ result }} {% endif %}
显示如下:
Response 135 bytes [200 OK]
我该如何返回我要寻找的json表示形式?
你可以像这样使用json.dumps:
@app.route('/') def home(): return render_template( 'index.html', title='Home Page', result=json.dumps({"a":[{"o":1},{"o":2}]}, sort_keys = False, indent = 2) )
然后将其格式化为模板,如下所示:
{% if result %} <pre>{{ result }}</pre> {% endif %}
如果这符合你的期望。我认为jsonify用于提供http.response数据,而不是模板的上下文数据。