- 4장에서 프로젝트의 첫 페이지를 만들면서 사이트 전체의 윤곽을 잡음
- GNB(Global Navigation Bar)에 해당하는 공통 메뉴도 만듦
- 전체 윤곽을 잡기 위해 base.html을 만들었는데, 이를 이용하여 기존 앱 템플릿을 수정함
- 첫 페이지의 메뉴에서 애플리케이션을 클릭해 해당 애플리케이션의 첫 페이지로 이동하는 기능을 만듦
- base.html을 상속받아 첫 페이지의 룩앤필을 가져옴
- 첫 페이지에서 링크 클릭 시 해당 애플리케이션으로 이동함
- UI변경에 따른 템플릿 파일만 영향을 받고, 테이블 변경 사항은 없음
- UI변경에 따른 템플릿 파일만 영향을 받고, URL 변경 사항은 없음
- 뼈대 만들기
- startproject
- settings.py
- migrate
- createsuperuser
- startapp
- settings.py
- 모델 코딩하기
- models.py
- admin.py
- makemigrations
- migrate
- URLconf 코딩하기
- urls.py
- 뷰 코딩하기
- views.py
- 템플릿 코딩하기
- templates 디렉터리
- base.html 파일의 메뉴 링크 수정
- home.html 파일의 링크 수정
- 북마크 앱의 템플릿 파일들 수정
- 블로그 앱의 템플릿 파일들 수정
- templates 디렉터리
- 그 외 코딩하기
- 없음
- 템플릿 코딩 작업만 하면 됨
- 해당 없음
- 해당 없음
- 해당 없음
- 해당 없음
base.html 수정
- 모든 페이지에 공통으로 나타나는 파일임
- a tag의 href 속성을 수정하여 클릭 시 적절한 링크로 이동하도록 수정
home.html 수정
- 테이블에서 a tag의 href 속성을 수정하여 클릭 시 적절한 링크로 이동하도록 수정
bookmark_list.html 수정
{% extends "base.html" %}
{% block title %}Django Bookmark List{% endblock %}
{% block content %}
<div id="content">
<h1>Bookmark List</h1>
<ul>
{% for bookmark in object_list %}
<li><a href="{% url 'bookmark:detail' bookmark.id %}">{{ bookmark }}</a></li>
{% endfor %}
</ul>
</div>
{% endblock %}
- {% extends "base.html" %}: base.html 템플릿 파일을 상속 받음 {% extends %} 템플릿 태그는 반드시 첫줄에 와야함
- {% block title %}: title 블록을 재정의함
- {% block content %}: content 블록을 재정의함
다음 파일들도 이와 같이 base.html을 상속받아 수정함
- bookmark_detail.html
- post_all.html
- post_detail.html
- post_archive.html
- post_archive_year.html
- post_archive_month.html
- post_archive_day.html
- 링크 클릭 시 애플리케이션 링크로 이동 됨
- Admin 사이트 첫 페이지가 다르게 나오는 이유
- Admin 사이트의 템플릿은 우리가 작성한 base.html 템플릿을 상속받지 않음
- 장고가 제공하는 Admin 사이트의 base.html을 상속받음