render 와 redirect의 차이

김태인·2022년 6월 2일
0

render
render(request, template_name, context_None, content_type=None, status=None, using= None)

render는 위와 같은 파라미터를 가짐

이중 request와 template_name은 필수적으로 필요하며
화면에 html파일을 띄울때 사용함

이 때 context로 원하는 인자를 넘길 수 있으며 이는
view에서 사용하던 파이썬 변수를 html 템플릿으로 넘기는 것

context 는 딕셔너리형으로 사용하며 key값에는 템플릿에서 사용할 변수 이름, value값은 파이썬 변수가 됨

#views.py

def create_review(request):
    content = request.POST.get('content')
    print(request.POST)
    context = {
        'content':content,
    }
    return render (request, 'review_result.html', context)

redirect
redirect(to, permanent=False, *args, **kwargs)

redirect는 위와 같은 파라미터를 가짐

to 는 어느 URL로 이동시킬지를 정하게 되며
이때 상대 URL, 절대 URL모두 가능함
urls.py에 name을 정의하여 사용을 많이하고,
URL로 이동하는 것이기때문에 render처럼 context값을 넘기진 못함

# views.py

from django.shortcuts import redirect

def create_review(request):
...
return redirect('view_name') #view_name 사용시
#return redirect('/article/url/') #상대 경로
	#return redirect('https://example.com/') #절대 경로
  • render / redirect 한줄정리

render는 템플릿을 불러오고 원하는 인자를 넘길수도 있음
redirect는 URL로 이동하여 그에 맞는 view를 실행하고, 여기서 다시 render를 할지 redirect를 할지 정할 수 있음

내용 출처 참조블로그
profile
코딩이 취미가 되는 그날까지

0개의 댓글