Form 작성하기

justyoon·2023년 4월 11일
0

AI5 Python/Django

목록 보기
27/31
post-thumbnail
## django_tutorials/urls.py
from django.contrib import admin
from django.urls import path
from articles import views

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', views.index),
    path('dinner/<str:name>/', views.dinner),
    >>path('review/', views.review),
    >>path('create_review/', views.create_review),
## articles/views.py
>>def review(request):
    return render(request, 'review.html')

>>def create_review(request):
    content = request.POST.get('content') #조회
    print(request.POST) #print 확인
    context = { #변수 이름을 키, 해당 값을 값 으로 갖는 딕셔너리
        'content': content,
    }
    return render(request, 'review_result.html', context)
<!--articles/templates/review.html-->
<form action="/create_review/" method="POST">
    {% csrf_token %}
    <label for="content">보내는 메시지</label>
    <!--입력창-->
    <input type="text" id="content" name="content" /> 
    <!--제출버튼-->
    <input type="submit" /> 
</form>
<!--articles/templates/review_result.html-->
<h1>요청으로 받은 내용은 {{ content }} 입니다.</h1>

순서

  1. review.html에서 출력할 메시지를 작성하고
    action의 create_review 주소로 POST요청을 합니다.

  2. POST요청이 django_tutorial/urls.py의 path('review/', views.review)를 거쳐 articles/views.py의 def create_review(request):로 들어와 content라는 변수로 변경합니다.

  3. context 딕셔너리에서 content값을 확인하고 연결된 템플릿 주소에 변경된 데이터를 실어 보냅니다.

  4. review_result.html 템플릿에서 데이터를 content 키값으로 출력합니다.

위 코드에서 request란 요청간의 모든 정보를 담고있는 매개변수입니다. 페이지가 요청이 되면 장고는 요청에 대한 메타데이터를 포함하는 HTTP request라는 객체를 만듭니다. 그러면 장고는 작성된 적절한 view함수를 로드하고 HTTP request를 뷰함수의 첫번째 인수로 전달해줍니다. 각각의 view함수는 리턴할 때 HTTP response 객체 반환을 합니다. 똑같이 request를 받아서 response를 작성합니다.

profile
with gratitude, optimism is sustainable

0개의 댓글