Django의 템플릿 상속 이해

Django의 템플릿 상속 이해
당신과 같은 독자는 MUO를 지원하는 데 도움이 됩니다. 귀하가 당사 사이트의 링크를 사용하여 구매하면 당사는 제휴 수수료를 받을 수 있습니다. 더 읽어보세요.

Django의 가장 강력한 기능 중 하나는 코드를 동적으로 재사용하는 기능입니다. 템플릿 상속을 통해 상위 템플릿과 하위 템플릿 간에 코드를 공유할 수 있습니다. 그것은 노력의 중복을 크게 줄입니다.





Django에는 HTML과 혼합되도록 설계된 템플릿 언어가 있습니다. 이전에 HTML 코드로 작업한 적이 있다면 Django의 템플릿으로 작업하기가 쉽다는 것을 알게 될 것입니다. Smarty 또는 Jinja2와 같은 다른 텍스트 기반 템플릿 언어는 유사한 구문을 가지고 있습니다.





오늘의 메이크업 비디오

Django 프로젝트를 빌드하여 템플릿 상속에 대해 자세히 알아보겠습니다.





크롬 램 사용량 제한하는 방법

Django 템플릿이란 무엇입니까?

Django에서 템플릿은 HTML, XML 또는 CSV와 같은 텍스트 기반 형식을 생성할 수 있는 텍스트 파일입니다.

Django 템플릿 태그 템플릿의 변수와 값을 포함하는 논리를 제어합니다. 태그는 템플릿 프레젠테이션에서 프로그램 논리를 분리하는 데 도움이 됩니다. 또한 템플릿을 깨끗하고 체계적으로 유지하는 데 도움이 됩니다.



Django에는 다음과 같은 많은 내장 태그가 있습니다. {% 태그 %} . 태그는 여러 면에서 유용합니다. 출력에서 텍스트를 생성하고, 루프를 수행하고, 템플릿에 정보를 로드할 수 있습니다.

이 프로젝트에서 태그를 사용하여 템플릿 상속을 시연합니다.





장고 프로젝트 만들기

시작하려면 장고 프로젝트 생성 . 이름이 지정된 앱 만들기 템플릿 . 이렇게 하면 템플릿 상속을 보여주기 위해 앱, URL 경로 및 템플릿에 대한 보기 함수를 만들 준비가 된 것입니다.

보기 기능 만들기

먼저 보다 템플릿을 렌더링하는 함수. 이 경우 렌더링합니다. index.html 주형. 가져오기 세우다 Django 단축키의 메소드. 그런 다음 인덱스 템플릿을 반환하고 렌더링하는 index라는 보기 함수를 만듭니다.





CC82DAA3D0EBAE3F46C39C4669BA58B5C1E7EF6

URL 경로 생성

다음으로 URL 경로 보기 기능이 템플릿을 표시하도록 합니다. 가져오기 django.urls의 함수 및 보다 기능 views.py 파일. 그런 다음 가져오기 설정 그리고 공전 템플릿에 있는 이미지와 미디어를 렌더링합니다.

from django.urls import path 
from . import views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns=[
path('',views.index,name='index'),
]
if settings.DEBUG:
urlpatterns+=static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

템플릿 만들기

이제 보다 그리고 URL 경로, 템플릿을 만듭니다. 템플릿 상속을 시연하려면 base.html 부모 템플릿으로. 그만큼 base.html 파일에는 공유하려는 일반 요소가 있습니다. index.html , 자식 템플릿.

{% load bootstrap5 %} 
{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!-- titles -->
{% if title %}
<title> Inherited Templates {{title}}</title>
{% else %}
<title> Inherited Templates </title>
{% endif %}
{% block styles %}
{% bootstrap_css %}
<link rel="stylesheet" href="{% static 'css/style.css' %}">
{% endblock %}
</head>
<body>
{% include 'navbar.html' %}
{% block content %} {% endblock %}
<!-- Bootstrap links -->
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonymous"> </script>
</body>
</html>

먼저 부트스트랩과 정적 종속성을 base.html 주형. 당신은 할 수 있습니다 Django 프로젝트에서 부트스트랩 프레임워크 사용 HTML 페이지의 스타일을 지정합니다. 상단에 로드된 정적 종속성은 정적 폴더에 포함된 자산을 로드합니다.

Django 템플릿을 사용하면 콘텐츠 표시를 담당하는 로직을 전달할 수 있습니다. 템플릿 태그는 '로 둘러싸인 텍스트로 구성됩니다. {% ' 그리고 ' %} ' 문자. 다른 경우라면 명령문은 보기 기능의 조건을 확인합니다. 조건이 참이면 첫 번째 블록의 콘텐츠를 렌더링합니다. false인 경우 두 번째 콘텐츠를 렌더링합니다.

그만큼 base.html 파일은 또한 navbar.html 템플릿 태그를 배치하는 바로 그 위치입니다. 즉, 연장할 때마다 base.html , navbar.html 상속되기도 합니다. 확장하는 모든 템플릿 base.html 다음이 있는 모든 요소를 ​​상속합니다. {% 포함 %} 꼬리표.

로 둘러싸인 모든 텍스트 {{}} 템플릿 변수입니다. 템플릿 변수는 뷰 함수에서 제공하는 동적 데이터입니다. Django는 다음과 같이 open 태그를 사용하는 블록 태그도 사용합니다. {% 블록 콘텐츠 %} , 닫는 태그는 다음과 같습니다. {% 엔드블록 %} .

블록 태그를 사용하면 하위 템플릿이 상위 템플릿의 내용을 재정의할 수 있습니다. 이 경우, index.html 블록 태그로 둘러싸인 영역의 내용을 바꿀 수 있습니다. 상대방에게 방해가 되지 않습니다 base.html 구성 요소.

에 논리를 적용해 보자. index.html

맥 배터리 교체 비용
{% extends 'base.html' %} 
{% block content %}
<div class="container text-center" style="color: white">
<h1>I Am The Index Template</h1>
<p>I inherited Bootstrap and the navbar from base.html</p>
</div>
{% endblock %}

에서 index.html 템플릿을 사용하려면 {% 연장하다 %} 구성 요소를 확장하는 태그 base.html . 블록 태그 내부 {% 블록 콘텐츠 %} , 모든 코드를 작성하십시오.

에서 index.html 템플릿에는 H1과 단락 요소가 있습니다. div 내부의 템플릿 태그를 사용하여 보다 기능.

브라우저에서 템플릿 상속 테스트

이제 서버를 실행할 수 있습니다. 그렇게 한 후 브라우저에서 다음을 확인하십시오. index.html 의 요소를 상속받은 파일 base.html . 여기에는 부트스트랩 링크와 navbar.html 주형.

dvd를 외장 하드 드라이브에 복사하는 방법
  base.html의 navbar가 있는 index.html

그만큼 index.html 파일은 기본 템플릿에서 navbar 및 Bootstrap 스타일을 상속해야 합니다. 그렇다면 템플릿 상속을 올바르게 사용한 것입니다. 이것이 없으면 필요한 위치에 내비게이션 바와 부트스트랩 링크를 추가해야 합니다.

또한, base.html 확장되는 모든 템플릿에 반영됩니다. 이 원칙은 오류 처리에서 중요합니다. 버그가 있는 템플릿을 쉽게 식별할 수 있습니다.

템플릿 상속은 Django가 DRY(반복 금지) 원칙을 구현하는 여러 방법 중 하나입니다. 개발이 훨씬 쉽고 간단해집니다.

Django 템플릿 상속을 사용해야 하는 이유

Django의 템플릿 상속은 가장 복잡한 기능 중 하나입니다. 이해하는 데 시간이 걸릴 수 있지만 일단 이해하면 많은 개발 노력을 절약할 수 있습니다.

템플릿 상속을 통해 상위 템플릿과 하위 템플릿 간에 코드를 공유할 수 있습니다. 이렇게 하면 템플릿에 반복적인 코드를 작성하지 않습니다.

템플릿 상속은 대규모 Django 프로젝트에서 중요합니다. 이러한 경우 디자인해야 할 애플리케이션과 템플릿이 많습니다. 부모 템플릿은 응용 프로그램의 다른 구성 요소에 대한 많은 제어 기능을 제공합니다.

Django 템플릿 시스템을 배우면 깨끗하고 강력한 코드 작성을 즐길 수 있습니다.