nullvuild

Bloger @nullvuild

Created Date '2025/03/09 오후 05:10

Modified Date '2025/03/09 오후 05:10

#Django #GET #POST #HTTP

Django에서 GETPOST 요청을 처리하는 방법을 설명한다.


하나의 View에서 동시에 처리하고자 한다면, 바로 GET과 POST 요청을 동시에 처리하기 부분으로 넘어가도 된다.


1. GET 요청 처리

GET 요청은 주로 데이터를 조회할 때 사용된다.


1.1 뷰(View)에서 GET 요청 처리

from django.shortcuts import render

def search(request):
    query = request.GET.get('query', '')  # URL에서 'query' 파라미터 가져오기
    return render(request, 'search.html', {'query': query})

1.2 URL 설정

from django.urls import path
from .views import search

urlpatterns = [
    path('search/', search, name='search'),
]

1.3 HTML 폼에서 GET 요청 보내기

<form action="{% url 'search' %}" method="GET">
    <input type="text" name="query">
    <button type="submit">검색</button>
</form>

2. POST 요청 처리

POST 요청은 데이터를 전송하거나 저장할 때 사용된다.


2.1 뷰(View)에서 POST 요청 처리

from django.shortcuts import render
from django.http import HttpResponse

def submit_form(request):
    if request.method == "POST":
        username = request.POST.get('username', '')
        return HttpResponse(f"입력한 사용자 이름: {username}")
    return render(request, 'form.html')

2.2 URL 설정

from django.urls import path
from .views import submit_form

urlpatterns = [
    path('submit/', submit_form, name='submit_form'),
]

2.3 HTML 폼에서 POST 요청 보내기

<form action="{% url 'submit_form' %}" method="POST">
    {% csrf_token %}
    <input type="text" name="username">
    <button type="submit">전송</button>
</form>

3. GET과 POST 요청을 동시에 처리하기

GET 요청은 Form을 통해 데이터를 전달할 수 있으며, 직접 브라우저 주소창에서 입력하여 접근할 수도 있다.


3.1 뷰(View)에서 GET과 POST 처리

from django.shortcuts import render

def handle_request(request):
    if request.method == "POST":
        data = request.POST.get('data', '')
        method_used = "POST"
    else:
        data = request.GET.get('query', '')  # GET 요청에서 'query' 파라미터 가져오기
        method_used = "GET"
    
    return render(request, 'result.html', {'data': data, 'method': method_used})

3.2 URL 설정

from django.urls import path
from .views import handle_request

urlpatterns = [
    path('handle/', handle_request, name='handle_request'),
]

3.3 HTML 폼에서 GET과 POST 요청 보내기

<form action="{% url 'handle_request' %}" method="POST">
    {% csrf_token %}
    <input type="text" name="data">
    <button type="submit">POST 요청</button>
</form>

<form action="{% url 'handle_request' %}" method="GET">
    <input type="text" name="query">
    <button type="submit">GET 요청</button>
</form>

3.4 URL을 통한 GET 요청

GET 방식의 경우, 브라우저 주소창에서 직접 URL을 입력하여 요청할 수도 있습니다.


http://127.0.0.1:8000/handle/?query=HelloDjango
Nullvuild

Nullvuild

@nullvuild

프로필