当前位置:  开发笔记 > 编程语言 > 正文

在Flask中jsonify和tojson有什么区别?

如何解决《在Flask中jsonify和tojson有什么区别?》经验,为你挑选了1个好方法。

我想在我的模板中的JavaScript块中使用Flask视图中的一些数据.我尝试使用jsonifytojson,但这给了一个错误.两者有什么区别?如何在模板中将JSON传递给JavaScript?

@app.route('/stocks')
def stocks():
    stocks = jsonify({"aapl":{"price":700, "volume":5000000}, "goog":{"price":655, "volume":9750000}})
    return render_template("stocks.html", stocks=stocks)

TypeError:  is not JSON serializable

mehdy.. 10

jsonify返回Response从Flask视图返回的对象作为对客户端的JSON响应,因此在这种情况下stocks不是JSON对象而是Response对象.

如果要使用JSON但不通过使用直接将其返回到客户端,则可以使用tojson过滤器将对象转换为模板中的JSON.

当您需要在模板中使用JSON时,例如在JavaScript变量中使用它,您应该使用tojson.当您需要将JSON响应返回给客户端时,您应该使用它jsonify.



1> mehdy..:

jsonify返回Response从Flask视图返回的对象作为对客户端的JSON响应,因此在这种情况下stocks不是JSON对象而是Response对象.

如果要使用JSON但不通过使用直接将其返回到客户端,则可以使用tojson过滤器将对象转换为模板中的JSON.

当您需要在模板中使用JSON时,例如在JavaScript变量中使用它,您应该使用tojson.当您需要将JSON响应返回给客户端时,您应该使用它jsonify.

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有