You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板渲染JSON响应如何保持格式固定且正确缩进

实现方案

完全可以实现,你只需要在后端提前将Python对象序列化为带固定缩进的JSON字符串,再传递到模板渲染即可,操作如下:

  1. 后端视图层修改代码
    首先导入Python内置的json模块,使用json.dumps()方法的indent参数指定缩进空格数,设置sort_keys=False避免键被自动重排,保证输出格式固定:
import 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],
}
# 序列化为带4空格缩进、保持键顺序的JSON字符串,有中文内容可保留ensure_ascii=False参数
formatted_json = json.dumps(obj, indent=4, sort_keys=False, ensure_ascii=False)
return render(request, 'card/list.html', {'form':form, 'list_text': formatted_json})
  1. 模板层渲染调整
    在list.html中渲染时,需要加上safe过滤器关闭Django的自动HTML转义,避免引号等字符被转义破坏格式。如果需要在页面上可视化展示JSON格式,用pre标签包裹即可:
<pre>{{ list_text|safe }}</pre>

如果是要把格式化后的JSON赋值给前端JS变量,直接编写即可:

<script>
const renderData = {{ list_text|safe }};
</script>

注意:如果你的JSON内容包含用户输入的不可信数据,需要先做好XSS过滤再使用safe过滤器,避免安全风险。

内容的提问来源于stack exchange,提问作者senarijit1618

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 02:12:02