본문 바로가기
Django

[Django 기초] render() 함수

by dio-han 2021. 12. 3.

render()

 

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

 

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

HttpResponse 객체로 변환하는 함수이다.

즉, 인자로 넘겨주는 템플릿과 context 데이터를 합쳐서 HttpResponse 객체로 돌려준느 함수.

view.py 에서 view 함수가 request를 인자로 받아서 HttpResponse 객체로 변환하여 반환해주는 것을 보았는데

return에 render 함수를 이용하면 html 파일이 위치한 경로를 더해 HttpResponse 객체로 변환하여 준다.

 

- 필수 인자

request, template_name

o request에는 데이터를 요청한 요청 객체를 넘겨준다.

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

- template_name 은 렌더링에서 사용할 대상 템플릿을 명시

 

- 선택 인자

 

o context 는 템플릿에 추가할 값들이 들어 있는 사전형 인자로 기본값은 아무것도 없는 None 이다.

o content_type 은 결과로 만들어 내는 문서의 유형을 말하며 기본값은 'text/html' 즉 HTML 웹 페이지이다.

o status는 상태 코드(Status Code) 값이며 기본값은 200이다. 상태 코드는 클라이언트의 요청이 성공적으로

처리되었는지에 대한 정보를 주는 코드이다.

o using은 템플릿을 렌더하는 템플릿 엔진을 지정할 수 있는 인자이다. 원하는 경우 다른 템플릿 엔진을 사용하여

템플릿을 렌더링할 수 있다.

 

 

'render'는 두 가지 과정이 있다. Django Template Language를 써서 작성한 코드를 읽어 일반적인 HTML 코드로

바꿔주는 과정도 rendering이라고 하고, 이 HTML 파일을 브라우저가 읽어서 우리가 실제로 보는 예쁜 웹 페이지로

바꿔주는 과정도 rendering이라고 한다. 

Django 코드를 render 해서 HTML 파일로 만들고 그 다음 웹 브라우저에서 HTML 파일을 render 해서 우리가 보는

웹 페이지로 바꿔주는 것.

두 과정 모드 render라고 한다.