Dam*_*oda 5 python django json django-models python-2.7
我需要将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"
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是我的django方法
def get_titles():
url = 'http://localhost:8080/titles/'
r = requests.get(url)
titles = r.json()
print(titles['data'])
Run Code Online (Sandbox Code Playgroud)
我需要的是转换为模型并传递给模板.请告诉我如何将JSON转换为Model.
你不具备的JSON结构转换成一个Django模型只是使用它在Django模板:JSON结构(Python的类型的字典)只是正常工作在Django模板
例如,如果您{'titles': titles['data']}作为上下文传入模板,则可以将其用作:
{% for title in titles %}
ID is {{title.id}}, and name is {{title.name}}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
只要您不需要使用Django存储数据,上述解决方案就可以正常工作.如果您想存储,请阅读以下内容.
您可以创建一个模型来存储该JSON数据.一旦存储,您可以将查询集传递给您的模板
class Title(models.Model)
id = models.CharField(max_length=36)
name = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
或使用 UUIDField
class Title(models.Model)
id = models.UUIDField(primary_key=True)
name = models.CharField(max_length=255)
Run Code Online (Sandbox Code Playgroud)
将数据存储在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'])
Run Code Online (Sandbox Code Playgroud)
使用存储的数据作为模板上下文传递
# Then pass this dict below as the template context
context = {'titles': Title.objects.all()}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6713 次 |
| 最近记录: |