Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在html文件中使用的变量上调用jsonify会导致错误的结果_Python_Html_Json_Flask - Fatal编程技术网

Python 在html文件中使用的变量上调用jsonify会导致错误的结果

Python 在html文件中使用的变量上调用jsonify会导致错误的结果,python,html,json,flask,Python,Html,Json,Flask,有没有办法将“jsonify”存储在变量中?我不喜欢执行“returnjsonify(data)”的纯json格式,但我喜欢缩进,所以我尝试使用呈现的HTML模板来对其进行修饰。以下是我的python代码: from flask import Flask, jsonify, render_template app = Flask(__name__) @app.route("/") def return_json(): data = {"One": 1, "Two": 2, "Three

有没有办法将“jsonify”存储在变量中?我不喜欢执行“returnjsonify(data)”的纯json格式,但我喜欢缩进,所以我尝试使用呈现的HTML模板来对其进行修饰。以下是我的python代码:

from flask import Flask, jsonify, render_template
app = Flask(__name__)

@app.route("/")
def return_json():
    data = {"One": 1, "Two": 2, "Three": 3, "Letters": ['a', 'b', 'c']}
    html_item = jsonify(data)
    return render_template("file.html", html_item=html_item)

if __name__ == "__main__":
    app.run()
这是我的(目前非常基本的)HTML文件(file.HTML):


{{html_item}}
这是我在浏览器上得到的输出


如果没有在变量中存储jsonify的方法,有人知道我如何在浏览器上以漂亮的方式显示“数据”吗?我只知道(1)jsonify和(2)“返回数据”,它与没有缩进的jsonify相同。

jsonify()
生成一个包含JSON数据的响应对象。从:

此函数包装
dumps()
,以添加一些增强功能,使生活更轻松它使用
application/JSON
mimetype将JSON输出转换为
Response
对象。

我的。当您的路由应该生成JSON作为最终结果时,这非常有用,而当您希望在模板中使用JSON数据时,这并不十分有用

您可以直接使用:

from flask import json

@app.route("/")
def return_json():
    data = {"One": 1, "Two": 2, "Three": 3, "Letters": [a, b, c]}
    html_item = json.dumps(data, indent=2, separators=(', ', ': '))
    return render_template("file.html", html_item=html_item)
缩进
分隔符
参数是
flask.json.jsonify()
在启用
jsonify\u PRETTYPRINT\u REGULAR
时使用的参数,而这不是AJAX请求

或者,使用以下命令将数据转换为模板中的JSON:


{{data | tojson | safe}}
这假设
数据
被传递到模板中,而不是
html\u项
JSON字符串。还要注意那里使用的
safe
过滤器;这可以确保您获得可以使用JavaScript代码加载的未转义JSON数据,而不是HTML转义版本

您可以将相同的配置传递给该筛选器:


{data | tojson(indent=2,分隔符=(',',':'))| safe}
如果我把标签放在里面,对我来说很有效。谢谢!
<Response 92 bytes [200 OK]> 
from flask import json

@app.route("/")
def return_json():
    data = {"One": 1, "Two": 2, "Three": 3, "Letters": [a, b, c]}
    html_item = json.dumps(data, indent=2, separators=(', ', ': '))
    return render_template("file.html", html_item=html_item)