django-drf框架自带的路由以及最简化的视图
程序员文章站
2022-07-09 20:40:04
0910自我总结 django drf框架自带的路由以及最简化的视图 路由 一.导入模块 二.初始化路由对象 三.创建路由 其效果等同于 视图 一.导入模块 二.创建视图逻辑 ......
0910自我总结
django-drf框架自带的路由以及最简化的视图
路由
一.导入模块
from rest_framework.routers import simplerouter
二.初始化路由对象
router = simplerouter()
三.创建路由
router = simplerouter() # 注册各种接口路由 router.register('cars', views.carmodelviewset, base_name='car') #car为链接的开头,views.carmodelviewset为当路由为cars的时候的调用的函数 urlpatterns = [] urlpatterns.extend(router.urls)
其效果等同于
urlpatterns = [ url(r'^cars/$', views.carmodelviewset.as_view()), url(r'^cars/(?p<pk>.*)/$', views.carmodelviewset.as_view()), ]
视图
一.导入模块
from rest_framework.viewsets import modelviewset
二.创建视图逻辑
modelviewset源码
class modelviewset(mixins.createmodelmixin, mixins.retrievemodelmixin, mixins.updatemodelmixin, mixins.destroymodelmixin, mixins.listmodelmixin, genericviewset): #所有他当中以及对于get等等的方法自动进行了封装 mixins是在generics再进行方法的分装成5个方法 retrievemodelmixin:retrieve 单取 listmodelmixin:list 群取 createmodelmixin:create 单增 updatemodelmixin:update 单整体改 updatemodelmixin: partial_update 单局部改 destroymodelmixin:destroy 单删
class carmodelviewset(modelviewset): queryset = models.car.objects.filter(is_delete=false) serializer_class = serializers.carmodelserializer ........ #queryset serializer_class 必须给与 ... def get(self): 他会调用retrieve或者list方法其他也类似 .....
上一篇: 设计模式六大原则:迪米特法则