您的位置:首页 > 编程语言 > Go语言

Django Rest Framework - 实例PartyDemo 之 增删改查

2016-12-06 20:11 691 查看

1.配置URL

使用上篇的Partymodel和PartySeralization

在testrestapi下新建 urls.py

testresrapi/urls.py

urlpatterns = []


配置url :

mysite/urls.py

别忘记在 setting.py下配置 testrestapi 此 app ; url 配置如下 :

urlpatterns = [
...
url(r'^api/', include('testrestapi.urls')),
...
]


2.实现查与增

需求

增加一条Party 信息

查询全部Party 信息

实现view

testrestapi/views.py

实现如下 (使用mixins简单实现):

class PartyList(mixins.ListModelMixin,
mixins.CreateModelMixin,
generics.GenericAPIView):
queryset = Party.objects.all()
serializer_class = PartySerializer

def get(self, request, *args, **kwargs):
return self.list(request, args, kwargs)

def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)


当然也可以这样实现 (使用generics更简单):

class PartyList(generics.ListCreateAPIView):
queryset = Party.objects.all()
serializer_class = PartySerializer


上面两种选择其一即可;

配置url

testrestapi/urls.py

urlpatterns = [
url(r'^list/', PartyList.as_view()),
]


访问

api是我们自己配置的url , 也可以配置为自己的 app 名称或其他。

主机Ip:端口/ api /list


查询操作 :



提交操作:两种方式 表单提交和json提交



解释: 查询和增操作对应的是一个URL,但区分的是不同的请求方式;增:post实现;查:get实现。

3.实现改与删

需求

删除一条Party数据

修改一条Party数据

view实现

使用mixin实现

class PartyDetail(mixins.RetrieveModelMixin,
mixins.UpdateModelMixin,
mixins.DestroyModelMixin,
generics.GenericAPIView):
queryset = Party.objects.all()
serializer_class = PartySerializer

def get(self, request, *args, **kwargs):
return self.retrieve(request, *args, **kwargs)

def put(self, request, *args, **kwargs):
return self.update(request, *args, **kwargs)

def delete(self, request, *args, **kwargs):
return self.destroy(request, *args, **kwargs)


使用generics实现

class PartyDetail(generics.RetrieveUpdateDestroyAPIView):
queryset = Party.objects.all()
serializer_class = PartySerializer


当然,上面两者其一即可。

url配置

urlpatterns = [
url(r'^list/', PartyList.as_view()),
url(r'^detail/(?P<pk>[0-9]+)$', PartyDetail.as_view()),


访问 : IP : 端口 /api /detail/pk

(1)查看详情 : GET



(2)修改内容 : PUT



(3)删除内容 : delete



操作方式,在view中可以控制,比如删除,我们常常使用的是伪删除

4.总结

使用mixin和generics 可以快速的使用我们的api , 但可能不够灵活,所以我们也可以自己写请求的返回数据,比如官方给的例子:Writing regular Django views using our Serializer

下篇文章实现 其 API文档的配置和使用

参考 : http://www.django-rest-framework.org/

源码地址 : https://github.com/LABELNET/django-mysite-frist
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django url rest 增删改查