request.POST
는 HTTP POST 요청에서 전송된 폼 데이터를 가져오는 데 사용됩니다. 이 속성은 QueryDict
객체를 반환하며, 이 객체는 키-값 쌍으로 구성된 데이터를 저장합니다. 이 속성은 주로 HTML 폼을 통해 제출된 데이터를 처리할 때 사용됩니다. 예를 들어, 사용자가 로그인 폼을 제출하면, request.POST
를 사용하여 사용자가 제출한 로그인 자격 증명을 가져올 수 있습니다.
def login_view(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
# 사용자 인증 로직 실행
# ...
request.body
는 요청 본문의 원시 데이터를 가져오는 데 사용됩니다. 이 속성은 HTTP 요청의 Content-Type 헤더에 지정된 데이터 형식으로 요청 본문을 가져옵니다. 이 속성은 주로 RESTful API에서 JSON, XML 등 다양한 데이터 형식으로 요청을 처리할 때 사용됩니다.
request.body
는 요청 본문 데이터를 직접 처리하고 싶을 때 사용
import json
def api_view(request):
if request.method == 'POST':
data = json.loads(request.body)
# JSON 데이터 처리 로직 실행
# ...
request.data
는 request.body
와 달리, 요청 본문 데이터를 파싱하고 직렬화하기 위한 Django의 기본 파서(예: JSONParser
, FormParser
, MultiPartParser
등)에 따라 자동으로 변환됩니다. 이 속성은 주로 RESTful API에서 JSON, XML, HTML 폼 등 다양한 데이터 형식으로 요청을 처리할 때 사용됩니다.
request.data
는 요청 본문 데이터를 Django가 자동으로 파싱하고 직렬화하기를 원할 때 사용
from django.http import JsonResponse
def api_view(request):
if request.method == 'POST':
data = request.data
# 데이터 처리 로직 실행
# ...
return JsonResponse({'success': True})