Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
from rest_framework import viewsets
list() 提供一组数据
retrieve() 提供单个数据
create() 创建数据
update() 更新保存数据
destory() 删除数据
二、ViewSet 视图集类不再实现get()、post()等方法,而是实现动作 action,如 list() 、create() 等。
视图集只在使用as_view()方法的时候,才会将action动作与具体请求方式对应上
class BookViewSet(viewsets.ViewSet):
def list(self, request):
...
def retrieve(self, request, pk=None):
设置路由
urlpatterns = [
url(r'^books/$', BookViewSet.as_view({'get':'list'}),
url(r'^books/(?P<pk>\d+)/$', BookViewSet.as_view({'get': 'retrieve'}),
]
三、action 属性
在视图集中, 可以通过 action 对象属性来获取当前请求视图集的action的动作是谁
def get_serializer_class(self):
if self.action == 'create':
return BookCreateSerializer
else:
return BookListSerializer