模板中的 Django Json 响应格式
Posted
技术标签:
【中文标题】模板中的 Django Json 响应格式【英文标题】:Django Json Response formatting in templates 【发布时间】:2021-11-05 19:16:50 【问题描述】:是否有可能以某种方式保持 JSON 响应的原样并将其缩进为正确的格式?
我想在我的 list.html 模板中呈现 list_text,但每次都出现不同的 json 响应。是否可以保持固定并正确缩进?
obj =
list_text[0],
list_text[1],
list_text[2],
list_text[3],
list_text[4],
list_text[5],
list_text[6],
list_text[7],
return render(request, 'card/list.html', 'form':form, 'list_text': obj)
我在这里找到了类似的 JSON 文章:Link
但它是用于 JSON 序列化或类似的东西,我希望将其传递给模板。
【问题讨论】:
【参考方案1】:如果您希望维护订单,请使用列表而不是 set
obj = [
list_text[0],
list_text[1],
list_text[2],
list_text[3],
list_text[4],
list_text[5],
list_text[6],
list_text[7],
]
return render(request, 'card/list.html', 'form':form, 'list_text': obj)
您可能可以传递list_text
,因为它看起来像是一个列表。
现在,为了在模板中正确缩进,最简单的方法是将 Python 对象转换为 JSON 字符串。
list_text_as_a_string = json.dumps(obj, indent=2)
return render(request, 'card/list.html', 'form':form, 'list_text': list_text_as_a_string)
注意indent=2
。默认情况下,json.dumps 会避免任何额外的空白。
现在在你的模板中简单地做
<pre> list_text </pre>
pre tag 采用预先格式化的文本并按原样呈现。 (通常 HTML 会忽略额外的空白)。它还使用固定宽度的字体,所以看起来更好。
【讨论】:
以上是关于模板中的 Django Json 响应格式的主要内容,如果未能解决你的问题,请参考以下文章
为 Django 模板中的 Highcharts 从 Pandas 数据帧格式化 JSON
与 AngularJS 一起使用时,Django 模板不呈现 JSON 响应