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를 외장 하드 드라이브에 복사하는 방법
그만큼 index.html 파일은 기본 템플릿에서 navbar 및 Bootstrap 스타일을 상속해야 합니다. 그렇다면 템플릿 상속을 올바르게 사용한 것입니다. 이것이 없으면 필요한 위치에 내비게이션 바와 부트스트랩 링크를 추가해야 합니다.
또한, base.html 확장되는 모든 템플릿에 반영됩니다. 이 원칙은 오류 처리에서 중요합니다. 버그가 있는 템플릿을 쉽게 식별할 수 있습니다.
템플릿 상속은 Django가 DRY(반복 금지) 원칙을 구현하는 여러 방법 중 하나입니다. 개발이 훨씬 쉽고 간단해집니다.
Django 템플릿 상속을 사용해야 하는 이유
Django의 템플릿 상속은 가장 복잡한 기능 중 하나입니다. 이해하는 데 시간이 걸릴 수 있지만 일단 이해하면 많은 개발 노력을 절약할 수 있습니다.
템플릿 상속을 통해 상위 템플릿과 하위 템플릿 간에 코드를 공유할 수 있습니다. 이렇게 하면 템플릿에 반복적인 코드를 작성하지 않습니다.
템플릿 상속은 대규모 Django 프로젝트에서 중요합니다. 이러한 경우 디자인해야 할 애플리케이션과 템플릿이 많습니다. 부모 템플릿은 응용 프로그램의 다른 구성 요소에 대한 많은 제어 기능을 제공합니다.
Django 템플릿 시스템을 배우면 깨끗하고 강력한 코드 작성을 즐길 수 있습니다.