Django에서 화면에 HTML을 보여주기 위해서는
Template와 **render()**의 개념을 이해해야 합니다.
1. Template이란?
Template은 화면(UI)을 담당하는 파일입니다.
- 보통 .html 파일
- 브라우저에 실제로 보여지는 구조
- Django에서는 View가 직접 HTML을 만들지 않고
Template을 렌더링해서 응답합니다.
즉,
Template = 화면 구성 담당
입니다.
2. render()의 역할
View 함수에서 자주 보게 되는 코드입니다.
def index(request):
return render(request, 'foods/index.html')
render - " 화면으로 만들어서 내보낸다 "()는 내부적으로 다음 일을 합니다.
- 지정한 template 파일을 찾고
- HTML을 렌더링한 뒤
- HttpResponse 객체로 변환해서 반환
결국 render()의 결과는 HttpResponse입니다.
한 줄로 정리하면:
render = Template → HttpResponse 변환기
3. templates 폴더는 왜 필요할까?
Django는 HTML 파일을 아무 곳에서나 찾지 않습니다.
정해진 규칙에 따라 templates 디렉토리를 탐색합니다.
보통 앱 구조는 이렇게 됩니다.
foods/
├─ templates/
│ └─ foods/
│ └─ index.html
4. templates/foods 구조를 쓰는 이유
왜 이렇게 앱 이름으로 한 번 더 감싸는 구조를 사용할까요?
이렇게 하면 문제 발생 가능
templates/
└─ index.html
여러 앱에서 index.html을 만들면
이름 충돌이 발생할 수 있습니다.
그래서 이렇게 사용
templates/
└─ foods/
└─ index.html
이렇게 하면:
- foods/index.html
- menus/index.html
처럼 앱별로 명확하게 구분됩니다.
Django 공식 권장 구조이기도 합니다.
5. 전체 흐름 정리
- URL 요청 발생
- View 함수 실행
- render() 호출
- Template 로드
- HTML 렌더링
- HttpResponse 반환
- 브라우저에 화면 표시
6. 정리하면
- Template: 화면(UI)을 담당하는 HTML
- render(): Template을 HttpResponse로 변환
- templates/app_name/ 구조: 템플릿 충돌 방지용
'Django 프론트& 백엔드 개발' 카테고리의 다른 글
| 정적 파일(static files)이란? (0) | 2026.01.04 |
|---|---|
| Django의 MVT 구조 개념 (0) | 2026.01.04 |
| Django에서 메인 페이지(빈 경로)가 404가 뜨는 이유 (0) | 2026.01.03 |
| Django에서 URL 작성할 때 알아두면 좋은 규칙들 (1) | 2026.01.03 |
| ROOT_URLCONF의 역할 (0) | 2026.01.03 |