📚 Django 템플릿 설정 및 문법 기초 정리
1. 🎨 Django 템플릿 폴더 및 HTML 파일 생성
- 기존에는 URL을 통해 HTML을 생성하고 HTTP 응답을 처리하는 방식으로 작업했다.
- 이번에는 View를 거치지 않고 템플릿을 직접 생성하여 반환하는 방식을 적용한다.
- manage.py가 있는 경로에 templates 폴더를 생성한다.
- templates 폴더 안에 movies.html이라는 HTML 파일을 생성한다.
2. 📜 Django 템플릿 설정 과정
- URL 설정 파일을 수정한 후, 기존 코드는 주석 처리하거나 삭제한다.
- render 함수를 이용해 템플릿을 반환한다.
- render(request, 'movies.html', context) 형태로 작성한다.
- context에는 영화 목록 데이터(예: movie_list)를 딕셔너리 형태로 전달한다.
- 참고: context나 template_name은 명시적으로 입력할 필요 없이 자동으로 동작할 수 있다.
3. 🛠️ Django 템플릿 경로 설정
- 'Template does not exist' 에러 발생 시 세팅 파일 설정이 필요하다.
- settings.py의 TEMPLATES 설정 안에 DIRS 리스트를 수정한다.
- 예시:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [ BASE_DIR / 'templates' ],
...
}
]
- BASE_DIR는 프로젝트 루트 경로를 가리킨다.
- 경로 설정 후 새로고침하면 정상적으로 템플릿을 로드할 수 있다.
4. 🎬 Django 템플릿 문법과 리스트 출력
- 무비 리스트를 HTML에 출력할 때 Django 템플릿 문법을 사용한다.
- {% for movie in movie_list %} ~ {% endfor %} 구조를 사용해 루프를 돌린다.
- 중괄호 두 개({{ movie.title }})로 데이터를 출력할 수 있다.
- 필요한 경우 줄바꿈을 위해 <br> 태그를 추가한다.
5. ✏️ Django 템플릿 문법 심화 사용
- 링크(HREF)를 설정할 때, forloop.counter0를 사용해 인덱스를 관리한다.
- Django 템플릿 문법에서는 기본적으로 연산(덧셈/뺄셈)이 불가능하다.
- 덧셈이 필요한 경우 |add 필터를 사용한다.
- 예시: {{ forloop.counter|add:'-1' }}
- 반복 횟수 제한은 {% if forloop.counter <= 3 %} 형태로 작성할 수 있다.
- 조건문을 쓸 때는 항상 {% endif %}로 종료해야 한다.
✅ 정리
- View 없이도 템플릿 렌더링이 가능하다.
- settings.py에 template 경로를 꼭 추가해야 한다.
- 템플릿 문법은 매우 강력하지만 약간의 제약(연산 불가)이 있다.
- 이를 보완하기 위해 Django는 다양한 필터와 템플릿 태그를 제공한다.
다음에는 ➡️ 템플릿 상속과 static 파일 사용법으로 이어서 학습할 수 있습니다! 🚀
'Django' 카테고리의 다른 글
Chapter 1-10 Django로 구구단 페이지 만들기 (0) | 2025.04.29 |
---|---|
Chapter 1-9 Django 템플릿 구성 파일 개발 & 방안 (0) | 2025.04.29 |
Chapter 1-7 Django - 가짜 데이터베이스로 웹 페이지 만들기 튜토리얼 (0) | 2025.04.29 |
Chapter 1-6 Django 기본 HTTP 응답 만들기 튜토리얼 (0) | 2025.04.29 |
Chapter 1-2 Windows에서 pyenv + 가상환경 설정법 (Mac 과정 대응 버전) (0) | 2025.04.29 |