render 정의
앞서 설명했듯, 템플릿은 화면 구성을 담당하는 부분이다. 이러한 템플릿을 유저에게 보여준다는 것이 템플릿을 렌더한다는 것이다.
render 함수
render 함수는 HTML 템플릿을 사용하여 HTTP 응답을 생성하는데 사용되는 함수이다. render함수는 디장고의 shortcuts 모듈에 속해 있다.
1) request
디장고 뷰 함수의 첫 번째 매개 변수로 HTTP 요청을 나타낸다. 디장고에서 모든 뷰 함수는 최소한 하나의 인자로 request를 가져야 하며, 이는 현재 사용자의 브라우저에서 서버로 전송된 HTTP 요청에 대한 정보를 담고 있다.
즉, request는 'HTML 템플릿 파일에 들어 있는 내용을 화면에 보여줘'라는 뜻이다.
2) 'populars/index.html'
사용할 HTML 템플릿 파일의 경로를 나타낸다.
즉, templates 디렉토리 > populars 디렉토리 > index.html로 찾아가라는 의미이다.
[선택 인자]
3) context (기본값 : none)
렌더링할 템플릿에 전달할 context 데이터를 담은 딕셔너리이다. 템플릿에서 사용할 변수들을 이 딕셔너리에 추가한다.
4) content_type (기본값 : none)
HTTP 응답의 Content-Type을 지정하는 문자열로 디장고가 자동으로 적절한 Content-Type을 설정한다.
content-type이란 데이터의 종류를 나타내어, 클라이언트와 서버가 어떻게 데이터를 처리해야하는지 알려주며 에러를 방지한다.
content-type : 주요 미디어 타입 / 특정 미디어 타입의 하위 유형
text/html : HTML 문서를 나타낸다
application/json : JSON 데이터를 나타낸다
image/jpeg : JPEG 이미지를 나타낸다
audio/mp3 : MP3 오디오 파일을 나타낸
5) status (기본값 : none)
HTTP 응답의 상태 코드를 지정하며 디장고가 자동으로 200(OK) 상태 코드를 설정한다.
HTTP 상태 코드는 서버가 클라이언트에게 전송하는 세자리 숫자로 이루어진 코드로 해당 요청의 성공 여부, 리다이렉션, 클라이언트 오류, 서버오류 등을 나타낸다.
대표적인 상태코드
200 : 요청이 성공적으로 처리되었습니다.
404 : 요청한 리소스를 찾을 수 없습니다.
1XX : 처리 중
2XX : 성공
3XX : 리다이렉션
4XX : 클라이언트 오류
5XX : 서버 오류
6) using (기본값 : none)
사용할 템플릿 엔진을 지정하는 문자열로 디장고는 설정 파일에 지정된 기본 템플릿 엔진을 사용한다. 특정 템플릿 엔진을 사용하려면 해당 엔진의 이름을 명시적으로 전달할 수 있다.
render라고 불리는 경우
1) 디장고 템플릿 언어를 써서 받성한 코드를 읽어 일반적인 html 코드로 바꾸어 주는 과정
즉, {%...%]이 포함된 코드를 읽어 우리가 알고 있는 일반적인 html 코드로 바꾸는 과정이라고 생각하면 된다.
2) html 파일을 읽어서 우리가 실제로 보는 웹페이지로 바꾸어 주는 과정
정리
'FRAMEWORK > Django' 카테고리의 다른 글
[Django] 템플릿 (Template) (2) (0) | 2024.01.20 |
---|---|
[Django] 템플릿(Template) (1) (0) | 2024.01.17 |
[Django] URL (0) | 2024.01.17 |
[Django] 웹페이지 (Web Page) (0) | 2024.01.16 |
[Django] 앱 (App) (0) | 2024.01.16 |