일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- nginx
- 효울적
- is_ajax() not working
- 클린코드
- check ajax
- 알고리즘
- render html
- django 시작하기
- queryset filter
- 자료구조
- 글자 수
- request.path
- HTTP
- 정렬
- CleanCode
- django
- 클린코드-함수
- reCAPTCHA V2
- 포맷팅
- Trre heap
- Django Ajax
- 트리란
- Djnago CSRF
- request.GET
- 클린 코드
- 선택 정렬
- 복수 외래키
- 버블 정렬
- Proxy_pass
- queryset
- Today
- Total
Yang 코딩 공부
[Django 튜토리얼] Template의 extends, include 구문과 render 함수 본문
HTML : Hyper Text Markup Language
django의 HTML파일을 어떻게 다루는지에 대해
Template에서 자주쓰이는 구문으로 extends와 include가 있는데
extents 구문은 미리 템플릿을 만들어두고 이 템플릿을 바탕으로 내용을 채워가는 느낌이고
include 구문은 만들어 놓은 템플릿이 있다고하면 그곳에 부분적으로 추가하는 느낌이다.
코드로 들어가보자
일단 전 시간에 이어서 프로젝트 플더에 template. 폴더를 생성한다
그후 templates 폴더에 base.html 파일을 생성한다.
그 다음 views의 hello_world함수의 코드를 수정한다.
기존에는 HttpResponse 를 return하여 우리가 입력한 문자열을 html파일로 django에서 만들어줘 보여줬지만
render 함수를 이용하여 우리가 만든 base.html 파일을 랜더링하여 보여준다
하고 python manage.py runserver
실행하게되면
에러창이 나올것이다.
그것은 우리가 템플릿 경로를 아직 설정해주지 않았기 때문인데
setting.py안의 TEMPLATES 내용중에서 DIRS를 등록해준다
로 변경
하고 서버 가동 후 입력했던 url로 접속하게 되면
위와 같이 빈 창이 나왔을 것이다 이것은 우리가 html파일이 아무것도 입력하지 않았기 때문이다.
이것을 우리가 html파일을 아래와 같이 수정
하면
이처럼 변한 것을 볼 수 있다.
html을 만들었으니 이를 extends / include / block 구문을 사용하여 html 뼈대를 만들어보겠다.
먼저 include
templates 폴더에 새로운 html 파일을 만든다 이름은 head.html로 하겠다
그리고 base.html 파일의부분내용을 다 가지고 head.html로 옮긴다.
위 사진에서 base.html에 커서가 놓여진곳에 {% include 'head.html' %}
을 넣어주면
head.html의 내용이 base.html 구문에 적용된것을 확인할 수 있다.
위와같이 include는 코드를 부분적으로 넣어주어 적용시킬 떄 사용한다.
다음으로 extents와 block는 한세트라고 볼수있는데
base.html에사이에 block 쓰고싶은단어 를 입력하고 endblock을 입력한다
그러고 나서 hello_world.html이라는 파일을 새로 만들고
위와같은 내용을 적으면 base.html의 block content와 endblock사이에 입력한 값이 들어간걸 확인 할 수 있다.
이런식으로 extends는 바탕을 만들어 바탕을 가져와 사용하는 것이고
include는 부분을 만들어 부분을 넣는것 이라고 생각하면 될것같다.
'Django > tutorial' 카테고리의 다른 글
[Django 튜토리얼] 1.0 앱 생성하기 (0) | 2021.11.25 |
---|---|
[Djnago 시작하기]0.1 환경세팅 (0) | 2021.11.25 |