JSON数据转换为Django模型

发布于 2021-01-29 15:20:37

我需要将JSON数据转换为Django模型。

这是我的JSON数据

{
  "data": [
    {
      "id": "20ad5d9c-b32e-4599-8866-a3aaa5ac77de",
      "name": "name_1"
    },
    {
      "id": "7b6d76cc-86cd-40f8-be90-af6ced7fec44",
      "name": "name_2"
    },
    {
      "id": "b8843b1a-9eb0-499f-ba64-25e436f04c4b",
      "name": "name_3"
    }
  ]
}

这是我的django方法

def get_titles():
    url = 'http://localhost:8080/titles/' 
    r = requests.get(url)
    titles = r.json()
    print(titles['data'])

我需要的是转换为模型并传递给模板。请让我知道如何将JSON转换为Model。

关注者
0
被浏览
36
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    在Django模板中使用JSON

    你不会
    在Django模板的JSON结构(Python的类型的字典)的工作就好了:到JSON结构转换成一个Django模型只是使用它在Django模板

    例如,如果您将{'titles': titles['data']}上下文作为模板传递,则可以将其用作:

    {% for title in titles %}
        ID is {{title.id}}, and name is {{title.name}}
    {% endfor %}
    

    只要您不需要使用Django存储数据,上述解决方案就可以正常工作。如果要存储,请阅读以下内容。

    制作模型

    您可以创建一个模型来存储JSON数据。一旦存储,就可以将queryset传递给模板

    class Title(models.Model)
        id = models.CharField(max_length=36)
        name = models.CharField(max_length=255)
    

    或使用 UUIDField

    class Title(models.Model)
        id = models.UUIDField(primary_key=True)
        name = models.CharField(max_length=255)
    

    将数据存储在Django模型中

    # Read the JSON
    titles = r.json()
    # Create a Django model object for each object in the JSON 
    for title in titles['data']:
        Title.objects.create(id=title['id'], name=title['name'])
    

    使用存储的数据作为模板上下文传递

    # Then pass this dict below as the template context
    context = {'titles': Title.objects.all()}
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看