如何正确使用Flask的jsonify()返回json?

我在使用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数据,而不是模板的上下文数据。

以上是 如何正确使用Flask的jsonify()返回json? 的全部内容, 来源链接: utcz.com/qa/428144.html

回到顶部