tastypie is a good thing. Haven't test it thoroughly. Gonna need some provement. Now I will introduct how to use tastepie for newbies. Let me introduce all the equipments I have to deploy tastypie. 1) linuxmint 13 2) virtualenv ( sudo apt-get install…
Django Rest Framework API指南 Django Rest Framework 所有API如下: Request 请求 Response 响应 View 视图 Generic view 通用视图 Viewsets 视图集 Router 路由 Parser 解析器 Renderer 渲染器 Serializer 序列化器 Serializer fields 序列化字段 Serializer relations 序列化字段关系 Validators 验证器 Authenticat…
本节大纲 1.Validators 2.Authentication Validators 在REST框架中处理验证的大多数时间,您将仅仅依赖于缺省字段验证,或在序列化器或字段类上编写显式验证方法.但是,有时您需要将验证逻辑放入可重用组件中,以便可以在整个代码库中轻松地重用它.这可以通过使用验证器函数和验证器类来实现. Validation in REST framework Django REST framework serializer里面的验证处理有一些不同于Django ModelFor…
之前按照REST Framework官方文档提供的简介写了一系列的简单的介绍博客,说白了就是翻译了一下简介,而且翻译的很烂.到真正的生产时,就会发现很鸡肋,连熟悉大概知道rest framework都不算,反正楼主看来,要想真正的将rest玩弄于股掌之内,很明显,那一份样例是远远不够的.所以开辟一个新的REST Framework API Guide系列,这在rest framework的官方文档也还是有的,而且,不用想它是最全面的.这边这个系列的主要目的是为了自己能够抓住生产上的重点,从代码实…
本节大纲 1.serializers 1.Serializers Serializers允许复杂的数据,像queryset和模型实例转换成源生的Python数据类型.从而可以更简单的被渲染成JSON,XML或其他内容类型.Serializers也提供了反序列化的功能,允许解析过的数据转化为复杂的类型,在即将到来的数据被验证完之后. 另外的一点就是REST framework跟Django的Form和ModelForm类很相似.这里也提供了2个类,Serializer和ModelSerialize…
本节大纲 1.Routers 2.Parsers 3.Renderers Routers Usage from rest_framework import routers router = routers.SimpleRouter() router.register(r'users', UserViewSet) router.register(r'accounts', AccountViewSet) urlpatterns = router.urls register的两个必填参数prefix,…
Its one of the primary authors' lecture on pyCon: http://www.youtube.com/watch?v=Zv26xHYlc8s&noredirect=1 What is Tastypie A REST framework for django Designed for extension Supports both Model & non-Model data for more information, please visit h…
本节大纲 1.Generic Views 2.ViewSets  1.Generic Views CBV的主要的一个优点就是极大的允许了对于代码的从用.自然,rest framework取其优势,提供了很多可以重构的视图.rest framework 提供的 Generic Views可以让你很快速的构建跟数据库模型映射紧密的API视图. 如果 generic view不满足你的API需求,很简单,你可以放弃它去使用正常的APIView类,或者将generic view内部包含的mixins和基…
RESTful设计方法 1. 域名 应该尽量将API部署在专用域名之下. https://api.example.com 如果确定API很简单,不会有进一步扩展,可以考虑放在主域名下. https://example.org/api/ 2. 版本(Versioning) 应该将API的版本号放入URL. http://www.example.com/app/1.0/foo http://www.example.com/app/1.1/foo http://www.example.com/app/…
1.Filtering 2.Pagination FIltering GenericAPIView的子类筛选queryset的简单方法是重写.get_quueryset()方法. 1.根据当前用户进行筛选 # self.request.user 2.根据当前URL # self.kwargs, url('^purchases/(?P<username>.+)/$', PurchaseList.as_view()), 3.根据当前url查询参数 # self.request.query_para…