# view.py from rest_framework import viewsets class PersonalSet(viewsets.ModelViewSet): queryset = Personal.objects.all() serializer_class = PersonalSerializer pagination_class = LargeResultsSetPagination permission_classes = (IsAuthenticated,) authentication_classes = (JSONWebTokenAuthentication,)
# urls.py from django.urls import include, path from rest_framework import routers from rest_framework.authtoken import views from rest_framework_jwt.views import obtain_jwt_token from okr_rest.views import TestGroupSet, QuarterSet, PersonalSet router = routers.DefaultRouter() router.register("test_group", TestGroupSet) router.register("quarter", QuarterSet, base_name="quarter") router.register("personal", PersonalSet) urlpatterns = [ path("", include(router.urls)), path("api-auth/", include("rest_framework.urls", namespace="rest_framework")), path("api-token-auth/", views.obtain_auth_token), path("jwt-auth/", obtain_jwt_token)
ModelViewSet中默认已经有五个混入类直接封装好处理各类请求.对应关系已经访问url以下: DRF默认已经封装了五种经常使用的方法,但因为封装不一样须要在访问的时候注意访问url(detail是否为true).固然也能够根据本身须要从新各类方法python
类名 | HTTP方法 | 说明 | detail | URL示例 |
---|---|---|---|---|
mixins.CreateModelMixin | POST | 建立数据 | False | http://localhost/api/personal/ |
mixins.RetrieveModelMixin | GET | 检索数据 | True | http://localhost/api/personal/30/ |
mixins.UpdateModelMixin | PUT | 更新数据 | True | http://localhost/api/personal/30/ |
mixins.DestroyModelMixin | DELETE | 删除数据 | True | http://localhost/api/personal/30/ |
mixins.ListModelMixin | GET | 获取数据 | False | http://localhost/api/personal/ |