我想在模板的 JavaScript 块中使用 Flask View 中的一些数据。我尝试使用 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)

<script>var zipcodes = {{ stocks|tojson }};</script>
TypeError: <Response 21 bytes [200 OK]> is not JSON serializable

最佳答案

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

如果你想使用JSON但不直接返回给客户端使用,可以使用tojson过滤器将模板中的对象转换为JSON。

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

关于python - Flask中的jsonify和tojson有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34077761/

10-08 23:01