사용자 정의 경로 (기존 방식) :
에서 django.conf.urls을 가져 URL을 으로부터 이 app01 수입 뷰 urlpatterns의 = [ URL (R ' ^ 책 / $ ' , views.BookView.as_view ()), URL (R ' ^ 책 / (? P <PK> \ D +) $ ' , views.BookDetailView.as_view ()) ]
클래스 BookView (APIView) : 데프 수 (자체 요청) : book_list = models.Book.objects.all () 학사 =의 BookSerializers (book_list, 많은 = 참) 반환 응답 (bs.data) 데프 (자체 요청) 게시 : # 添加一条数据 인쇄 (request.data) 기지국 = BookSerializers의 (= 데이터 request.data) 경우 bs.is_valid () bs.save () # 1 生成记录 반환 응답 (bs.data) 다른 : 리턴 응답 (bs.errors을 ) 클래스BookDetailView (APIView) : 데프 (자동, 요청, PK) 얻을 : book_obj = models.Book.objects.filter (PK = PK) 좁은 방 () 학사 =의 BookSerializers (book_obj, 많은 = 거짓) 반환 응답 (bs.data) DEF (자가 요청, PK) 넣어 book_obj = models.Book.objects.filter (PK = PK) 좁은 방 () BS = BookSerializers의 (= 데이터 request.data 예 = book_obj) 경우 bs.is_valid () : 기지국 .save () #의 업데이트 반환 응답 (bs.data) 다른 사람 : 반환응답 (bs.errors)는 데프 (자동, 요청, PK) 삭제 : models.Book.objects.filter를 (PK = PK) .delete () 반환 응답 ( "" )
두 반자동 경로 (뷰 클래스 상속 ModelViewSet)
에서 django.conf.urls가 가져올 URL을 에서 이 app01 수입 전망 urlpatterns = [ URL (R ' ^ / $를 게시 ' , views.PublishView.as_view ({ ' 얻을 ' : ' 목록 ' , ' 게시물을 ' : ' 생성 ' })) , URL (r은 ' ? ^) / (P <PK> \ D + / $를 게시 ' , views.PublishView.as_view ({ ' 얻을 ' : ' 검색 ' , '놓다' : ' 갱신 ' , ' 삭제 ' : ' 파괴 ' })) ]
에서 rest_framework.viewsets가 가져 ModelViewSet의 클래스 PublishView (ModelViewSet을) 의 검색어 = models.Publish.objects.all () serializer_class = PublishSerializers
세 가지 자동 라우팅 (자동으로 생성 된 라우팅)
에서 django.conf.urls 오기 URL은 포함 에서 이 app01 오기 뷰 에서 rest_framework 오기 라우터 라우터 = routers.DefaultRouter () # 두 파라미터 매칭 행은 CBV에서 작성된 클래스의 도면 (router.register ' 공개 ' ) views.PublishView를 의 urlpatterns =를 [ # http://127.0.0.1:8000/publish/format=json (이 렌더러가 렌더링 된 페이지)를 반환 판정 #의 ^'공개 / 뷰 URL (R & LT를 '. PublishView.as_view은 ({ 'GET': '목록', 'POST'를 '만들기'})), # http://127.0.0.1:8000/publish.json (이 렌더러에 의해 결정된다) 렌더링 된 페이지를 반환 #URL (R & LT, views.PublishView.as_view은 ({ 'GET': '목록', 'POST': '만들기를'} '^ \ (P <형식> \의 W의 +) $를 게시는.?')), #은 다음을 사용할 수 있습니다 액세스 # 1 http://127.0.0.1:8000/publish/ # 2 http://127.0.0.1:8000/publish.json # 3 http://127.0.0.1:8000/publish/3 # 4 HTTP : //127.0.0.1:8000/publish/3.json URL (R & LT ' 는 포함 (router.urls)) ]
에서 rest_framework.viewsets가 가져 ModelViewSet의 클래스 PublishView (ModelViewSet을) 의 검색어 = models.Publish.objects.all () serializer_class = PublishSerializers