Server/django

[Django] 장고 기초 - 템플릿 상속 및 url 관리

또잉코딩 2019. 12. 29. 16:53

템플릿 상속

html상에서 겹치는 내용들(ex. navbar)을 새로운 html을 만들 때마다 복붙 해야 할까?

-> base.html에 겹치는 내용들을 써주고, 새 파일에는 base.html을 불러온다.

 

템플릿 상속의 장점 : 코드 재사용 가능, 일관된 UI 구성 및 변경 용이

 

템플릿 상속의 구현

1. 프로젝트 폴더에 ‘templates’ 폴더 만들기

2. templates폴더에 base.html만들기

3. base.html(중복코드)내용 채워넣기 및 선언

~(중복코드)~

이 아래에 새로운 컨텐츠가 올 예정

{% block contents %}

 

{% endblock %}

contents 대신 title, sidebar 등 가능

4. settings.pybase.html 위치 알리기

TEMPLATES = [

    {

        ‘DIRS’ : [‘<project 폴더 이름>/templates’],

    }

]

5. 사용하고자 하는 html에서 base.html 불러오기

최상단에 {% extends ‘base.html’ %}         cf. extends는 우선순위가 높다.

{% block contents %}

~contents 작성~

{% endblock %}

 

url 관리

App폴더별로 url 관리

1. App 폴더에 urls.py 생성

2. App 폴더 내 urls.py 수정

urlpatterns = [

    path(‘x/’, views.x, name=”x”)

]

3. 프로젝트 urls.py 수정

from django.urls import include

path(‘<url 이름>/’, include(‘<App폴더>.urls’))