DRF의 초기 인터페이스 설계

6898 단어 Django프레임
DRF(django rest framework)
DRF(Django restframework)는 Django에서 rest 인터페이스 사양을 사용하는 모듈입니다.어떤rest 인터페이스 규범입니까?바로 우리가 앞뒤 부분을 분리할 때 인터페이스를 정의하는 규범에 대해 다음과 같은 규범을 열거한다.
요청 방식
url 디자인 (인터페이스)
요청 내용
응답 내용
GET
127.0.0.1:8000/books/
모든 책의 정보를 얻다
[{책의 id,name,......},{},{}...]
GET
127.0.0.1:8000/books/{ id }
단일 데이터 증거 가져오기
단일 데이터 {책의 id,name....}
POST
127.0.0.1:8000/books/
단일 데이터 증가
성공한 데이터 추가 {"mesage": "ok"}
DELETE
127.0.0.1:8000/books/{ id }
단일 데이터 삭제
빈\"\"로 돌아가기
PUT
127.0.0.1:8000/books/{ id }
데이터 수정
업데이트 후 전체 데이터
구조적으로 보면 우리가 일반적으로 디자인한 URL 주소보다 더욱 간단명료하고 프로그래머의 유지보수와 오류 처리를 편리하게 한다
오류 처리: {"error": "message"}
어떻게 Django에서rest 인터페이스 규범을 실현합니까?
DRF 설치
pip install django
pip install djangorestframework

완료되면 다음 사항을 학습할 수 있습니다.
  • APIView
  • 파서 어셈블리
  • 시리얼화된 구성 요소
  • 뷰 구성 요소
  • 인증 구성 요소
  • 권한 구성 요소
  • 주파수 제어 구성 요소
  • 페이지 구성 요소
  • 응답기 구성 요소
  • url 컨트롤러
  • Django에서 View 뷰 함수 사용이 불편하여 APIView 캡슐화
    class LoginView(View):
        def get(self, request):
            return render(request, 'login.html')
    
        def post(self, request):
            print(request.POST)
            #   Ajax          
            return HttpResponse("ok")
    

    APIView 사용
    class LoginView(APIview):
        def get(self, request):
            return render(request, 'login.html')
    
        def post(self, request):
            print(request.data)
            # APIView                 
            return HttpResponse("ok")
    

    View 소스 분석 CBV(django classbasedview)
  • from django.views import View
  • 보기 클래스에서 보기 클래스 계승 클래스class StudentView(View):pass
  • urls.py에서 라우팅 관계 정의
  • from django.urls import re_path from classbasedview import views urlpatterns = [ re_path(“login/”, views.LoginView.as_view()), ]

  • Django가 시작할 때 루트 시스템을 불러오고urlpatterns의 대응 관계를 읽습니다
  • 집행 asview (), 또는 득구 반환값, 이 함수는view 보기 함수
  • 를 반환합니다.
  • 이 때 귀속 관계가 설정되어 사용자가 요청할 때 url가 응당한view 보기 함수
  • 를 실행합니다
  • 이 보기 함수의 반환값은self입니다.dispatch()
  • self.dispatch()는 http 를 찾습니다.method_names 변수에 있는 함수를 실행하고 최종적으로 되돌려줍니다
  • APIView 소스 분석
    자신의 물건을 봉하여view 방법으로 사용하다
  • djangorestframework pip install djangorestframework 설치
  • views에서.py에서 from restframework.view import APIView
  • 뷰 클래스에서 APIView
    class StudentView(APIView):
        def get(self, request):
     	    pass
      	def post(self, request):
    		pass ```
    
    계승
  • urls.py에서 변하지 않음
  • Django가 시작할 때 루트 시스템을 불러오고urlpatterns의 대응 관계를 읽습니다
  • from django.urls import path
    from api.view import views
    
    urlpatterns = [
    	 path("login/", views.LoginView.as_view()),
    ]
    
  • 이 때 귀속 관계가 설정되어 있으며 사용자가 요청할 때 URL에 대응하는View 보기 함수
  • 를 실행합니다
  • View 뷰 함수 실행 요청
  • 디스패치()를 마지막으로 실행하고 반환값을 가져와 사용자에게 반환
  • Django RestFramework의 맞춤형 콘텐츠는 다시 쓰는 asview 함수에 디스패치 () 방법
  • 좋은 웹페이지 즐겨찾기