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 Rest Framework - 实例PartyDemo 之 用户相关
- Django Rest Framework - 实例PartyDemo 之 API文档
- Django Rest Framework - 实例PartyDemo 之 Token验证
- Django-Rest-Framework 教程
- Django REST framework
- SpringMVC教程/实例(三):java SpringMVC之REST实现简单的增删改查CRUD
- Django REST framework
- Django REST framework API
- C#基于DBContext(EF)实现通用增删改查的REST方法实例
- django-rest-framework 快速开始
- springmvc rest风格的实例代码demo讲解
- Django-Rest-Framework 教程: 6. ViewSets 和 Routers
- WCF 实例 —— 基于ADO.NET POCO Entity Framework的REST WCF
- Django-Rest-Framework 教程: 4. 验证和权限
- Django-Rest-Framework 教程: 5. 提高关联性和超链接API
- Django-Rest-Framework 教程: 快速入门
- Django REST framework
- django rest framework 入门1-序列化 Serialization
- tastypie Django REST framework
- Django-Rest-Framework 教程: 3. 使用 class based views