자세한 프로세스 프레임 워크 장고 나머지

  1. 무엇 평온
    • REST는 기술과 아무 상관이 소프트웨어 아키텍처의 스타일을 표현, REST는 인 Representational 주 전송 짧고,의 중국어 번역으로 "상태의 전송이 특징"
    • REST는 URL에 의해 노드의 네트워크 자원의 분포에 식별됩니다 네트워크를 통해 자원의 관점에서처럼, URL을 특징으로 자원을 얻기 위해 클라이언트 응용 프로그램이 응용 프로그램에 대한 액세스는 결과의 특징이의 상태를 변경
    • REST 자원이 다른 건축 양식과 다른 가장 중요한 속성이기 때문에 데이터의 모든하지만, 네트워크 또는 작업 (CRUD) 데이터, 모든 리소스를 인수 한 모든 데이터가 처리됩니다
    • 이 자원 중심의 REST 아키텍처 스타일의 경우, 제안 된이 새로운 구조 개념, 즉 : 자원 지향 아키텍처 (ROA : 리소스 지향 아키텍처)
    • 웹 사이트, 클라이언트와 서버를 대신하여 상호 작용하는 과정을 방문, 클라이언트가 사용하는 의미 만 HTTP 프로토콜입니다. 구체적으로는 HTTP 프로토콜 내부에 네 개의 동사가 동작 모드를 나타냅니다 : GET, POST가, PUT, DELETE. 네 가지 기본 작업에 해당하는 어떤 : 자원을 얻기 위해 사용 GET, POST 새로운 자원, (또한 리소스를 업데이트 할 수 있습니다) 자원을 업데이트하기위한 PUT, 자원을 삭제합니다.
    • 위의 설명을 통합, 우리는 편안하고 아키텍처 것을 요약 :
    • 각 URI는 리소스를 나타내고;
    • 클라이언트와 같은 자원의 프리젠 테이션 계층의 어떤 종류를 통과하는 서버, 사이;
    • HTTP 동사, 서버 자원의 운영을 통해 네 개의 클라이언트는 "프리젠 테이션 레이어 변환의 상태를 달성했다.

 

 

  2.   프로세스 클라이언트는 데이터에 대한 액세스를 요청

    • 클라이언트 요청 발행 CRUD
    • URL을 ->보기
    • 보기 -> as_view
    • as_view -> 파견

 

 

  3.as_view이 엔트리 함수

    • 여기 as_view는 APIView입니다
    • 먼저 as_view이 APIView하는 방법입니다, APIView이보기에서 상속, 또한 as_view을 무시하는 방법
    • as_view하지 장애를 발생하는 직접 작동, 여러 요청간에 데이터를 직접 조작의 검색어 검출의 검색어, 우리를 묻는 메시지 않습니다
    • 전부 또는 get_queryset 추천
    • 소스 코드에 반영된 다음 호출 부모 클래스 as_view 및 제작 CSRF 면제 :
      •         도 = 슈퍼 (APIView, CLS) .as_view (** initkwargs) 
                view.cls = 용의 CLS의 
                view.initkwargs의 initkwargs = 
        
                # 음표 : 세션 기반 인증 검증 CSRF 명시된다 
                # 다른 인증 CSRF 면제. 
                반환 csrf_exempt (보기)
        

         

      • 부모 클래스 as_view 전화였다
        • 매개 변수 감지
        • 폐쇄 기능을 정의
        • 기록 데이터
        • 그리고 파견 (여기에 파견 APIView는 파견, 다음의 소스 코드입니다)
        •     데프 파견 (자기, 요청, * 인수, ** kwargs로) :
                   "" " 
                  `.dispatch ()는`꽤 많이 장고의 일반 파견과 동일합니다, 
                  하지만 시작에 대한 추가 후크, 마무리, 예외 처리. 
                  " "" 
                  self.args = 인수 
                  self.kwargs = kwargs로 
                  요청 = self.initialize_request (요청 인수 *, ** kwargs로) 
                  self.request =는 요청 
                  self.headers = self.default_response_headers   # 지원 중단? 
          
                  시도 : 
                      self.initial (요청, * 인수를, ** kwargs로를)
          
                      # 적절한 처리기 메서드를 가져옵니다 
                      경우 request.method.lower () 에서 self.http_method_names : 
                          핸들러 = getattr (자기, request.method.lower는 (), 
                                            self.http_method_not_allowed) 
                      다른 사람 : 
                          핸들러 = self.http_method_not_allowed 
          
                      응답 = 핸들러를 (요청, 인수 *, ** kwargs로) 
          
                  를 제외한 EXC 같은 예외 : 
                      응답 = self.handle_exception (EXC) 
          
                  self.response = self.finalize_response (요청, 응답, 인수 *, ** kwargs로)
                   리턴 self.response

           

  4.dispatch

    • 재정의 방법
    • 내가 요청 변환을 만든
    • 전체 초기화 후
      • 포맷 접미사
      • 내용 결정
      • 의사 결정의 버전 (사용자의 요구에 따라)
        • 필수 업그레이드
        • 권장 업그레이드
        • 또는 업그레이드하지
      • 인증을 수행
      • 권한을 확인
      • 스로틀
      • 이 초기화 동작시 전체 초기화 코맨드 초기 디스패치 호 방법은 디스패치 기능, 초기 데이터 요청을 반영
      •   시도 : 
                    self.initial (요청, * 인수를, ** kwargs로를)

         



      • 데프 (자동, 요청, * 인수, ** 초기 kwargs로 일) : "" " 이전 방법 핸들러를 호출에 발생 할 필요가 무엇을 실행합니다. " "" self.format_kwarg = self.get_format_suffix (** kwargs로) #이 내용 협상을 수행 및 요청에 대한 승인 정보를 저장 NEG = self.perform_content_negotiation (요청) request.accepted_renderer, request.accepted_media_type = NEG # 버전을 사용중인 경우 API 버전을 확인합니다. 버전, 계획 = self.determine_version (요청, * 인수, ** kwargs로) request.version, request.versioning_scheme= 버전 구성표 #이 들어오는 요청이 허용되어 있는지 확인 self.perform_authentication를 (요청) self.check_permissions (요청) self.check_throttles (요청시)

         

 

    • 후 분배 방법에 대한 요구에 따라, 데이터의 초기화를 완료
    • 예외가 공정 이상 발생하면 예외가 직접 예외가 잡힌 것, 캐스팅하지 않습니다
    • 정책 예외를 제공합니다
    • 해당 최종 균일 치료
    • 마지막으로, 반환

추천

출처www.cnblogs.com/wuygblog/p/10990432.html