Python/Django

Django의 View와 HttpResponse 기본 사용법

임베디드 친구 2025. 10. 27. 21:38
반응형

Django의 View와 HttpResponse 기본 사용법

1. 들어가며

Django는 강력한 웹 프레임워크로, 웹 애플리케이션을 빠르고 효율적으로 개발할 수 있도록 도와줍니다. Django의 View는 웹 애플리케이션에서 요청을 처리하고 적절한 응답을 반환하는 중요한 역할을 합니다. 이 글에서는 Django의 View 개념과 HttpResponse를 이용한 기본적인 응답 처리 방법을 설명하겠습니다.


2. Django의 View란?

View는 사용자의 요청을 받아서 적절한 응답을 반환하는 Django의 핵심 요소 중 하나입니다. Django에서 View는 기본적으로 Python 함수 또는 클래스로 정의할 수 있습니다.

Django에서 View의 역할은 다음과 같습니다:

  1. 사용자의 요청(request) 처리
  2. 데이터베이스에서 필요한 데이터 조회 및 가공
  3. 적절한 응답(response) 반환

Django의 View는 일반적으로 views.py 파일에 작성됩니다. View를 만들고 이를 URL과 연결하여 웹 애플리케이션을 구성합니다.


3. HttpResponse를 이용한 기본 View 생성

3.1 HttpResponse란?

HttpResponse는 Django에서 HTTP 응답을 반환하는 가장 기본적인 방법입니다. HttpResponse 객체는 문자열을 인자로 받아 웹 브라우저에 응답을 전달합니다.

3.2 기본적인 HttpResponse 사용 예제

# views.py
from django.http import HttpResponse

def simple_view(request):
    return HttpResponse("Hello, Django!")

위 코드는 Django의 View 함수로, 클라이언트가 요청을 보내면 "Hello, Django!"라는 텍스트를 응답으로 반환합니다.

3.3 URL 설정하기

이제 위에서 만든 View를 URL에 연결해야 합니다. urls.py 파일을 수정하여 View를 연결합니다.

# urls.py
from django.urls import path
from .views import simple_view

urlpatterns = [
    path('hello/', simple_view),
]

위 코드에서 path('hello/', simple_view)http://127.0.0.1:8000/hello/ URL로 접근하면 simple_view 함수가 실행되도록 설정합니다.


4. 다양한 HttpResponse 사용 방법

4.1 HTML 응답 반환하기

HttpResponse를 이용하여 HTML 응답을 반환할 수도 있습니다.

# views.py
from django.http import HttpResponse

def html_view(request):
    html_content = """
    <html>
        <head><title>My Django Page</title></head>
        <body>
            <h1>Welcome to Django!</h1>
        </body>
    </html>
    """
    return HttpResponse(html_content)

위 View를 URL에 등록하면 웹 브라우저에서 HTML 페이지를 확인할 수 있습니다.

4.2 JSON 응답 반환하기

Django에서는 JSON 데이터를 반환할 수도 있습니다. 이를 위해 JsonResponse 객체를 사용할 수 있습니다.

# views.py
from django.http import JsonResponse

def json_view(request):
    data = {"message": "Hello, Django!", "status": "success"}
    return JsonResponse(data)

위 코드는 JSON 데이터를 반환하는 View로, 브라우저에서 요청하면 {"message": "Hello, Django!", "status": "success"} 형태의 JSON 응답을 받을 수 있습니다.


5. 동적 데이터 처리

Django View에서 URL 매개변수를 사용하여 동적인 응답을 만들 수 있습니다.

# views.py
from django.http import HttpResponse

def dynamic_view(request, name):
    return HttpResponse(f"Hello, {name}!")

이 View를 urls.py에 등록할 때 경로 매개변수를 추가합니다.

# urls.py
from django.urls import path
from .views import dynamic_view

urlpatterns = [
    path('greet/<str:name>/', dynamic_view),
]

이제 http://127.0.0.1:8000/greet/Django/로 접속하면 "Hello, Django!"라는 응답을 받을 수 있습니다.


6. View에서 상태 코드 설정하기

Django의 HttpResponse는 기본적으로 상태 코드 200(OK)을 반환합니다. 하지만 필요에 따라 상태 코드를 변경할 수 있습니다.

# views.py
from django.http import HttpResponse

def not_found_view(request):
    return HttpResponse("Page not found", status=404)

위 View는 404 상태 코드와 함께 "Page not found" 메시지를 반환합니다.


7. 마무리

이 글에서는 Django의 View와 HttpResponse를 이용한 기본적인 응답 처리 방법을 살펴보았습니다.

  • Django View의 개념
  • HttpResponse를 이용한 기본적인 응답 처리
  • HTML 및 JSON 응답 반환
  • 동적 데이터 처리 및 상태 코드 설정

Django의 View는 웹 애플리케이션에서 중요한 역할을 하므로, 이를 잘 이해하고 활용하는 것이 중요합니다.

반응형