使用 django 模板将 json 填充到 html

Posted

技术标签:

【中文标题】使用 django 模板将 json 填充到 html【英文标题】:populate json to html with django template 【发布时间】:2012-03-03 13:29:09 【问题描述】:

为了更好地调试我的 api,我想创建一个调试页面,逐行显示响应 json obj 的所有详细信息。我认为可以通过代码或 django 模板来完成。最简单的方法是什么?

https://developers.facebook.com/tools/explorer/?method=GET 例如,facebook explorer 确实会像这样列出响应 json obj 的详细信息。


  "id": "xxx", 
  "name": "xxx", 
  "first_name": "xxx", 
  "last_name": "xxx", 
  "link": "xxx", 
  "username": "xxx", 
  "hometown": 
    "id": "xxx", 
    "name": "xxx"
  , 
  "location": 
    "id": "xxx", 
    "name": "xxx"
  , 
  "bio": "Drink Coffee in Whitehorse", 

  "work": [
    
      "employer": 
        "id": "xxx", 
        "name": "xxx"
      , 
      "location": 
        "id": "xxx", 
        "name": "xxx"
      , 
      "position": 
        "id": "xxx", 
        "name": "xxx"
      , 
      "start_date": "2009-01", 
      "end_date": "0000-00"
    , 

【问题讨论】:

【参考方案1】:

您只需调用json.dumps() 并使用indent 关键字参数等于缩进生成的JSON 的空格数以进行漂亮的打印。

例如:

json.dumps(spam_and_eggs, indent=4)

【讨论】:

【参考方案2】:

我可以建议在您的 html 中使用 <pre></pre> 以使您的 json 看起来更漂亮。

import json
from django.contrib.admin.views.decorators import staff_member_required
from django.shortcuts import render
from .models import Scan

    @staff_member_required
    def info(request):
        my_info = Scan.scan()
        return render(request, 'info.html', 'info': json.dumps(my_info, indent=4))

HTML:

<!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
        <pre> info|safe </pre>
    </body>
</html>

【讨论】:

以上是关于使用 django 模板将 json 填充到 html的主要内容,如果未能解决你的问题,请参考以下文章

将 JSON 数组从 Django 视图返回到模板

Django 使用自定义 SQL 而不是模型将 JSON 对象返回到模板

解析json在模板中的django modelformset中返回

如何让 Django 填充一个 html 模板,然后让用户下载它而不在浏览器中显示它?

如何将 Json 数据显示到 Django 模板?

在Django模板中使用json数据