Tiny Finger Point Hand With Heart
본문 바로가기
Python/Django

[Django] render( )함수

by yoondii 2023. 1. 29.
728x90
반응형

render( )

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

 

render 함수는

인자로 주어진 템플릿을 사전형(dict) 인자인 context와 결합해서 렌더링을 거친 다음 HttpResponse 객체로 반환하는 함수.

쉽게 말하면 인자로 넘겨주는 템플릿과 context 데이터를 합쳐서 HttpResponse 객체로 돌려주는 함수.

 

필수 인자

이 중에서 필수인자는 request와 template_name 이다.

  • request에는 데이터를 요청한 요청 객체를 넘겨준다. 앞에서 함수형 view의 인자로 들어온 request를 render에 그대로 사용했다
...
def view(request):
    return render(request, ...)
...

이 request를 넘겨주는 이유는 요청에 대한 정보에 접근해서 user, session 등 여러 가지 기능을 구현하기 위해서이다.

  • template_name은 렌더링에 사용할 대상 템플릿을 명시한다.

 

선택 인자

다음으로 선택 인자를 보면

  • context 는 템플릿에 추가할 값들이 들어 있는 사전형 인자로 기본값은 아무것도 없는 None이다.
  • content_type 은 결과로 만들어 내는 문서의 유형을 말하며 기본값은 'text/html' 즉 HTML 웹 페이지이다.
  • status 는 상태 코드(Status Code) 값이며 기본값은 200(성공)입니다. 상태 코드는 클라이언트의 요청이 성공적으로 처리되었는지에 대한 정보를 주는 코드이다.
  • using 은 템플릿을 렌더하는 템플릿 엔진을 지정할 수 있는 인자입니다. 원하는 경우 다른 템플릿 엔진을 사용하여 템플릿을 렌더링할 수 있다.

    자세한 내용은 아래링크 확인
  • https://docs.djangoproject.com/ko/4.1/topics/http/shortcuts/#django.shortcuts.render
 

Django

The web framework for perfectionists with deadlines.

docs.djangoproject.com

 

두 개의 render

사실 우리가 알고 있는 과정 중 'render'라고 불리는 과정은 두 가지가 있다.

우리가 Django Template Language를 써서 작성한 코드를 읽어서 일반적인 HTML 코드로 바꿔주는 과정도 rendering이라고 하고, 이 HTML 파일을 브라우저가 읽어서 우리가 실제로 보는 이쁜 웹 페이지로 바꿔주는 과정도 rendering이라고 한다.

그러니까 서버에서 Django 코드를 render 해서 HTML 파일로 만들고 그 다음 웹 브라우저에서 HTML 파일을 render 해서 우리가 보는 웹페이지로 바꿔주는것이다.

Django 강의에서 말하는 render는 대부분 Template Language를 사용한 Django 코드를 HTML로 바꿔주는 과정을 일컫기는 하지만 이 두 가지 과정 모두 render라는 것을 기억하자.

728x90
반응형

'Python > Django' 카테고리의 다른 글

[Django] 상태 코드(Status Code)  (0) 2023.01.30
[Django] Template Language  (0) 2023.01.29
[Django] URL Routing  (0) 2023.01.29
[Django] runserver  (0) 2023.01.29
[Django] 장고의 철학 Reusable App  (8) 2023.01.28

댓글