본문 바로가기
Python/Django

Web - 템플릿/렌더링

by hooni40 2021. 7. 7.
728x90
반응형

안녕하세요, 지난 시간까지 Django를 이용하여 웹 페이지에 Hello Django! 를 출력해보았는데요, 오늘은 더 많은 내용을 사이트에 출력하기 위해 해야 하는 작업들을 정리해보겠습니다.

 

우선 이전까지는 foods App안의 views에서 index함수를 이용해 <h2>태그안에 Hello Django를 출력하였는데요, 여기서 더 복잡한 내용을 출력하기 위해서는 index안의 내용들을 바꿀 수도 있지만 템플릿(template)을 만들어 쉽게 관리할 수 있습니다!

 

1. foods App안에 templates라는 디렉토리를 만들고 그 안에 foods라는 디렉토리를 만들어줍니다.

2. foods 디렉토리 안에 index.html 파일을 만들어 주는데 이것을 Template이라고 부릅니다!

3. Template 내부에 원하는 코드를 html 형식으로 넣어줍니다!

 

 

이렇게 만든 템플릿을 유저에게 보여주기 위해서는 렌더(Render)를 해줌으로써 HttpResponse 객체로 변경해 줍니다!

4. 렌더링을 하기위해 foods App 안의 views.py파일에서 return값을 변경해 줍니다!

기존에 HttpResponse 대신에 render함수를 사용해 주고 파라미터로 request와 템플릿의 주소를 넣어줍니다!

 

 

정리하자면 Template으로 화면 구성을 담당하는 부분을 만들어 주고, Rendering을 통해 HttpResponse 객체로 변환해 줍니다!

 

render 함수

-. render()는 인자로 주어진 템플릿을 사전형(dict) 인자인 context와 결합해 렌더링을 거친 후 HttpResponse 객체로 변환하는 함수입니다. 즉 인자로 넘겨주는 템플릿과 context 데이터를 합쳐 HttpResponse 객체로 돌려주는 함수입니다.

-. render()의 필수 인자로는 위의 예에서와 같이 request템플릿 이름입니다.

-. render()의 선택 인자로는 템플릿에 추가할 값들이 들어 있는 사전형 인자context, 결과로 만들어 내는 문서의 유형context_type, 상태 코드status, 템플릿을 렌더하는 템플릿 엔진을 지정할 수 있는 인자인 using이 있습니다.

728x90
반응형

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

Web - URL(2)  (0) 2021.07.06
Web - URL(1)  (0) 2021.07.05
Web - MVC/MVT Architecture  (0) 2021.07.04
Web - Django App  (0) 2021.07.02
Web - Django project 시작 및 Server  (0) 2021.07.01

댓글