繁体   English   中英

Django:为Rest-API创建JSON

[英]Django : Create a JSON for Rest-API

我想创建下表的json数据。 该表具有两个字段名称和ID。 我想创建JSON数据,例如=>

{"Instances": [{"Name": "test2", "ID":"7a3a2eab-7d3b-498b-bc69-ba39396ada4f"},{"Name": "test1", "ID":"1114cb76-f3df-4c60-8b12-5ad14224ffbd"}]}

Name           ID
test2          7a3a2eab-7d3b-498b-bc69-ba39396ada4f
test1          1114cb76-f3df-4c60-8b12-5ad14224ffbd
ce-2           8b97b82b-a9e4-4fe0-adcb-eeaaac170301
ce-1           afaa50ad-8025-415b-81c4-566c8e06f388

我从api.nova.server_list(self.request)获取以上数据。 我试图编写以下代码以将数据转换为python + django中的json数据,但未成功。

   class InstanceList(django.views.generic.View):
    def get(self, request, *args, **kwargs):
          instances=api.nova.server_list(self.request)
          def serializer(m):
              ret= {} 
              ret['Name']= m.name
              ret['Id']=m.id
          context= {
              'instances': [serializer(m) for m in instances],
          }
          return HttpResponse(json.dumps(context), content_type='application/json')

假如说:

instances = api.nova.server_list(self.request)

返回instances列表,我看不到在get函数中定义serializer函数的地方。

使用实例,只需创建字典,如下所示:

data_list = [{"Name" : instance.name, "ID" : instance.id} for instance in instances]

data = {"Instances" : data_list}

然后只需执行以下操作:

return HttpResponse(json.dumps(data), content_type = 'application/json')

我强烈建议您查看以下资源,以便在Django中创建REST API:

Django Rest Framework: http//www.django-rest-framework.org/

Tastypie API: http ://tastypieapi.org/

我亲自成功地使用了Tastypie来创建一个REST API,该REST API从模型返回JSON数据。 这里是开始的Tastypie文档的链接: https ://django-tastypie.readthedocs.org/en/latest/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM