고통은 사라지고 결과는 남는다. Records of Chansolve

Django와 Django Rest Framwork의 차이 본문

Computer Science

Django와 Django Rest Framwork의 차이

엄청큰노란닭 2023. 3. 3. 17:14

Chat GPT를 이용해 궁금증을 풀어보았습니다.

 

 

Django는 Python 기반의 웹 프레임워크이며, 웹 어플리케이션을 쉽게 개발할 수 있도록 도와줍니다. 

Django Rest Framework는 Django를 기반으로한 RESTful API를 만들 수 있는 확장 프레임워크입니다.

 

 

Django와 Django Rest Framework의 차이점은 다음과 같습니다.

 

1. 기능 Django는 웹 어플리케이션 개발에 특화된 프레임워크이며, ORM(Object-Relational Mapping)을 통한 데이터베이스 처리, 템플릿 엔진을 통한 뷰 구현 등 다양한 기능을 제공합니다. 반면에, Django Rest Framework는 RESTful API 개발에 특화된 프레임워크이며, 시리얼라이저, 믹스인, 레코더 등 API 개발에 필요한 기능을 제공합니다.

 

2. 목적 Django는 웹 어플리케이션을 개발하는 것이 목적입니다. 웹 페이지를 렌더링하고, 데이터베이스를 연동하여 데이터를 조회하고 등록할 수 있습니다. 반면에, Django Rest Framework는 RESTful API를 개발하는 것이 목적입니다. 클라이언트 앱이나 다른 서버와 HTTP를 통해 데이터를 주고받을 수 있는 API를 만들 수 있습니다.

 

3. 데이터 처리 방식 Django는 ORM을 사용하여 데이터를 처리합니다. ORM을 통해 객체와 데이터베이스를 연결하고, SQL 쿼리를 생성하며, 결과를 반환합니다. 반면에, Django Rest Framework는 시리얼라이저를 사용하여 데이터를 처리합니다. 시리얼라이저는 파이썬 객체를 JSON, XML 등으로 직렬화하고, 반대로 역직렬화하는 기능을 제공합니다.

 

4. URL 매핑 Django는 URL 매핑을 통해 웹 페이지를 처리합니다. URL 매핑은 URL과 뷰 함수를 매핑하여 요청에 대한 응답을 처리합니다. 반면에, Django Rest Framework는 URL 매핑을 통해 API를 처리합니다. URL 매핑은 URL과 API 뷰를 매핑하여 요청에 대한 응답을 처리합니다.

 

5. 응답 방식 Django는 HTML, CSS, JavaScript 등을 사용하여 브라우저에서 웹 페이지를 렌더링하고, 데이터를 반환합니다. 반면에, Django Rest Framework는 JSON, XML 등을 사용하여 데이터를 반환합니다. API 클라이언트는 반환된 데이터를 사용하여 앱을 개발할 수 있습니다.

 

6. 사용자 인증과 권한은 Django는 내장된 인증 시스템을 제공합니다. 이를 통해 사용자 인증 및 권한 관리를 할 수 있습니다. Django의 인증 시스템은 사용자 모델, 인증 뷰, 인증 백엔드 등으로 구성됩니다. 기본적으로 Django의 인증 시스템은 세션 기반으로 동작하며, 쿠키를 사용하여 인증 정보를 저장합니다. 사용자 모델은 기본적으로 username, password, email 등의 필드를 제공합니다. 인증 뷰는 로그인, 로그아웃, 비밀번호 변경 등의 인증 관련 기능을 처리합니다. 인증 백엔드는 인증 처리를 담당합니다.

 

 Django Rest Framework는 Django의 인증 시스템을 확장하여 RESTful API 인증 및 권한 관리를 제공합니다. 기본적으로 Django Rest Framework는 세션 기반 인증이 아닌 Token 기반 인증을 사용합니다. 사용자는 인증 요청을 보내면, 서버는 사용자를 인증한 후 Token을 발급합니다. 이후, 사용자는 Token을 HTTP 요청 헤더에 포함시켜 API를 요청합니다. Django Rest Framework는 기본적으로 다양한 인증 방식을 제공하며, 커스텀 인증 및 권한 클래스를 추가할 수 있습니다.

'Computer Science' 카테고리의 다른 글

Django REST framework에서 ViewSet과 APIView  (0) 2023.04.24
나만 보려고 만든 Anaconda & Django Rest Framwork 프젝생성  (0) 2023.03.16
[SQLD] 식별자  (0) 2023.03.03
이진 트리 순회  (0) 2023.03.03
맵핑(Mapping)  (0) 2023.02.24
Comments