Django Project - (4)
Django Project - (4)
- Djnago 프로젝트 (인프런 강의 도움)
- Extends/Include/Block를 활용하여 HTML 구축
개발 Settings
- IDE: VScode
- OS: Mac OS M1
- Python: 3.12.2
- Django: 5.0.3
Extends/Include/Block 활용
- 하나의 html에 모든 내용을 적는것이 아닌 각 층을 구별하여 생성한다.
- 또한 App폴더 아래에 템플릿을 추가하여 특정 부분만 html로 수정한다.
- Template 폴더 밑에 3개의 .html 파일(head, header, footer)과 base.html를 수정한다.
- base.html 수정

<!-- head.html -->
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{타이틀 이름 지정}</title>
</head>
<!-- header.html -->
<div style="height: 10rem; background-color: #38df81; border-radius: 1rem; margin: 2rem;">
</div>
<!-- footer.html -->
<div style="height: 10rem; background-color: #38df81; border-radius: 1rem; margin: 2rem;">
</div>
- 결과

App 폴더 View 수정
-
호출하는 부분이 기존에 설정한 base.html이 아닌 프로젝트 폴더 안의 html호출해서 보여준다.
-
Extends를 활용하여 메인 html를 불러오고 block로 구역을 지정하여 html를 완성 시킨다.
-
mkdir -p {App폴더}/templates/{아무 이름 지정}-> 이름 지정할때 상위 폴더에 이름과 동일하게 하는것이 가독성이 좋다.- 새로운 html 생성

-
View.py 수정
from django.shortcuts import render
from django.http import HttpResponse
# Create your views here.
def helloworld(request):
return render(request, '{html이 들어가 있는 폴더 이름}/{새로 만든 html 이름}.html')
- 결과

Issue
- 현재 버전에서 block와 extend의 버전 호환성으로 build 할때 에러가 발생
Liquid Exception: Liquid syntax error (line 30): Unknown tag 'block' in /github/workspace/_posts/2024-02-20-Django_Infleran_4.md /usr/local/bundle/gems/liquid-4.0.4/lib/liquid/document.rb:23:in `unknown_tag': Liquid syntax error (line 30): Unknown tag 'block' (Liquid::SyntaxError) - 대체: 캡쳐로 변경