Django 기초 - request 응답 처리
🌈 request 응답 처리
🔥 request ()
🔥 redirect()
🔥 HttpResponse()
🔥 JsonResponse()
1. request()
- request는 url를 통해 form에 입력한 사용자의 데이터를 포함하여 여러 요청된 정보를 갖고 있어요.
- POST방식을 가진 간단한 로그인 form에 id는 'abcd'를 pw는 1234를 입력해 볼까요?
- 터미널에 pirnt(request.POST)를 통해 확인해보면, request가 form에 입력한 데이터를 갖고 있는 것을 확인할 수 있어요.
<!DOCTYPE html> <html lang="en"> <body> <h1>hello Index!</h1> <form action="/" method="POST"> {% csrf_token %} 👈 유해한 공격을 막기위한 장치로 반드시 필요 <div><input type="text" name="id" /></div> <div><input type="password" name="pw" /></div> <div><input type="submit" value="login" /></div> </form> </body> </html>
from django.shortcuts import render def index(request): # print(request) # print(type(request)) # print(dir(request)) print(request.POST) return render(request, 'index.html')
2. redirect()
- "return render()"가 아닌 "return redirect()"도 유용하게 사용할 수 있는데요, redirect는 해당 함수가 호출되었을 때, 지정해논 경로로 이동시키는 역할을 해요.
- test url('http://127.0.0.1:8000/test/')로 진입하면, '/'로 redirect 하도록 처리해두었기 때문에 root 경로인 메인 페이지로 이동한답니다.
- 즉, test()함수가 실행되면, index()함수가 최종적으로 response되겠네요:)
# urls.py from django.contrib import admin from django.urls import path from main.views import test urlpatterns = [ path('admin/', admin.site.urls), path('/', index), path('test/', test), ]
# main/views.py from django.shortcuts import render from django.shortcuts import redirect def index(request): return render(request, 'index.html') def test(request): return redirect('/')
3. HttpResponse()
- 'http://127.0.0.1:8000/test/'로 진입하면, views.py에서 test 함수가 실행되어, HttpResponse('hello HttpResponse')을 return 해보면, 화면에 hello HttpResponse라는 문구가 출력되는 것을 볼 수 있어요.
- HttpResponse()를 통해 페이지에 나타날 content를 전달할 수 있지만, 일반적으로 render를 통해서 html 자체를 전달하는게 더 효과적인 것 같아요.
from django.shortcuts import render from django.http import HttpResponse # Create your views here. def index(request): return render(request, 'index.html') def test(request): return HttpResponse('hello HttpResponse')
4. JsonResponse()
- JsonResponse는 JSON(딕셔너리 형태) 타입을 파라미터로 받아, front쪽에서 다룰 수 있도록 전달해줘요.
- 이에 'http://127.0.0.1:8000/test/'로 진입하면, views.py에서 d라는 변수에 할당된 딕셔너리가 화면에 출력됩니다.
from django.shortcuts import render from django.http import JsonResponse # Create your views here. def index(request): return render(request, 'index.html') def test(request): d = {'name':'jaewon', 'age':100} return JsonResponse(d)
Author And Source
이 문제에 관하여(Django 기초 - request 응답 처리), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jewon119/Django-기초-request-응답-처리저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)