Django

  • 웹과 서버를 연결하는 강력한 프레임워크
  • 주로 서버 사이드 렌더링 방식을 통해 HTML 페이지 반환
  • 통신 방식
    • HTTP 요청 수신:
      • 클라이언트(주로 웹 브라우저)에서 HTTP 요청을 서버로 전송
    • URL 라우팅:
      • urls.py 파일을 통해 요청된 URL을 적절한 뷰(view) 함수나 클래스에 매핑
    • 뷰 처리:
      • 매핑된 뷰 함수가 요청을 처리.
      • 뷰 함수는 데이터베이스와 상호작용하고, 템플릿 엔진을 사용하여 HTML을 렌더링
    • 응답 반환:
      • 뷰 함수는 HTML, JSON, XML 등 적절한 형식의 응답을 생성하여 클라이언트에 반환
      • Django는 주로 서버 사이드 렌더링된 HTML 페이지를 반환

DRF

  • RESTful API를 쉽게 구축할 수 있는 프레임워크
  • 주로 JSON 형식의 데이터를 반환하여 RESTful API 개발에 특화
  • 통신 방식
    • HTTP 요청 수신:
      • 클라이언트(주로 웹 애플리케이션 또는 모바일 앱)에서 HTTP 요청을 서버로 전송
    • URL 라우팅:
      • urls.py 파일을 통해 요청된 URL을 적절한 뷰셋(viewset)에 매핑
      • DRF는 DefaultRouter를 사용하여 라우팅을 간편하게 설정할 수 있다.
    • 뷰셋 처리:
      • 매핑된 뷰셋이 요청을 처리
      • 뷰셋은 데이터베이스와 상호작용하고, 시리얼라이저(serializer)를 사용하여
        데이터를 JSON 또는 XML 형식으로 변환
    • 응답 반환:
      • 뷰셋은 JSON, XML 등 적절한 형식의 응답을 생성하여 클라이언트에 반환
      • DRF는 주로 RESTful API의 특성에 맞춰 JSON 형식의 데이터를 반환

우리는 웹 뿐만 아니라 모바일 App에서 JSON 통신을 사용하기 위해 DRF 사용

+ Recent posts