Једна од најмоћнијих карактеристика Дјанга је његова способност динамичког поновног коришћења кода. Наслеђивање шаблона омогућава дељење кода између родитељских и подређених шаблона. То у великој мери смањује дуплирање напора.
Дјанго има свој шаблонски језик дизајниран да се стапа са ХТМЛ-ом. Лако ћете радити са Дјанго шаблонима ако сте раније радили са ХТМЛ кодом. Други језици шаблона засновани на тексту као што су Смарти или Јиња2 имају сличну синтаксу.
Хајде да научимо више о наслеђивању шаблона изградњом Дјанго пројекта.
Шта је Дјанго шаблон?
У Дјангу, шаблон је текстуална датотека која може да генерише било који формат заснован на тексту, као што су ХТМЛ, КСМЛ или ЦСВ.
Дјанго шаблонске ознаке контролишу логичко окружење променљивих и вредности у шаблону. Ознаке помажу да се одвоји логика програма од презентације шаблона. Они такође помажу да ваши шаблони буду чисти и организовани.
Дјанго има много уграђених ознака, које изгледају као {% ознака %}. Ознаке су корисне на много начина. Они могу креирати текст у излазу, изводити петље и учитавати информације у шаблон.
У овом пројекту ћете користити ознаке да бисте демонстрирали наслеђивање шаблона.
Направите Дјанго пројекат
Започети, креирајте Дјанго пројекат. Направите апликацију под називом шаблони. Када то урадите, спремни сте да креирате функцију приказа за апликацију, УРЛ путању и шаблоне да бисте демонстрирали наслеђивање шаблона.
Креирајте функцију приказа
Прво, креирајте а поглед функција која приказује шаблоне. У овом случају, ви ћете приказати индек.хтмл шаблон. Увезите дати, пружити метод из Дјанго пречица. Затим креирајте функцију приказа под називом индек која враћа и приказује шаблон индекса.
из дјанго.схортцутс увоз дати, пружити
# Креирајте своје погледе овде.
дефиндекс(захтев):
врати рендер (захтев,'индек.хтмл')
Направите УРЛ путању
Затим креирајте а УРЛ путања да би функција приказа приказала шаблоне. Увезите пут функција из дјанго.урлс и тхе поглед функција од виевс.пи фајл. Затим увезите подешавања и статична да бисте приказали све слике и медије које имате у шаблонима.
из дјанго.урлс увоз пут
из. увоз погледа
из дјанго.цонф увоз подешавања
из дјанго.цонф.урлс.статиц увозстатична
урлпаттернс=[
пут('',виевс.индек, наме='индекс'),
]
акоподешавања.ДЕБУГ:
урлпаттернс+=статична(подешавања. МЕДИА_УРЛ, доцумент_роот=подешавања. МЕДИА_РООТ)
Креирајте шаблоне
Сада када имате поглед и УРЛ путање, креирајте шаблоне. Да бисте демонстрирали наслеђивање шаблона, креирајте а басе.хтмл као матични шаблон. Тхе басе.хтмл датотека ће имати опште елементе са којима желите да делите индек.хтмл, подређени шаблон.
{% лоад боотстрап5 %}
{% оптерећења статична %}
<!ДОЦТИПЕ хтмл>
<хтмл ланг="ен">
<глава>
<мета цхарсет="УТФ-8">
<мета хттп-екуив="Кс-УА-Цомпатибле" цонтент="ИЕ=ивица">
<мета наме="виевпорт" цонтент="видтх=девице-видтх, инитиал-сцале=1.0">
<!-- наслови -->
{% иф титле %}
<наслов> Наслеђени шаблони {{титле}}</title>
{% друго %}
<наслов> Наслеђени шаблони </title>
{% ендиф %}
{% блок стилова %}
{% боотстрап_цсс %}
<линк рел="стилесхеет" хреф="{% статиц 'цсс/стиле.цсс' %}">
{% ендблоцк %}
</head>
<тело>
{% укључује 'навбар.хтмл' %}
{% блоцк цонтент %} {% ендблоцк %}
<!-- Боотстрап везе -->
<скрипт срц="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" интегритет="сха384-МрцВ6ЗМФИлзцЛА8Нл+НтУВФ0сА7МсКссП1УиЈоМп4ИЛЕуНСфАП+ЈцКсн/тВтИакВКСМ" цроссоригин="анонимни"></script>
</body>
</html>
Прво, учитајте Боотстрап и статичке зависности на басе.хтмл шаблон. Можете користите Боотстрап оквир са вашим Дјанго пројектом да стилизујете ХТМЛ странице. Статичка зависност учитана на врху ће учитати средства укључена у статичку фасциклу.
Дјанго шаблони вам омогућавају да проследите делове логике одговорне за приказивање садржаја. Ознаке шаблона се састоје од текста окруженог "{%" и "%}“ знакова. Тхе ако друго изјава проверава услове у функцији приказа. Ако је услов тачан, он приказује садржај у првом блоку; ако је нетачно, приказаће садржај у другом.
Тхе басе.хтмл датотека ће такође приказати садржај навбар.хтмл тачно тамо где постављате ознаке шаблона. То значи да кад год продужите басе.хтмл, навбар.хтмл такође се наслеђује. Било који шаблон који проширује басе.хтмл ће наследити било који елемент са ан {% укључује %} таг.
Било који текст окружен {{}} је променљива шаблона. Променљиве шаблона су динамички подаци које пружају функције приказа. Дјанго такође користи блок ознаке које користе отворену ознаку, нпр {% блок садржаја %}, и завршну ознаку, као {% ендблоцк %}.
Блок ознаке омогућавају подређеним шаблонима да замене садржај надређених шаблона. У овом случају, индек.хтмл може заменити свој садржај у области затвореној блок ознакама. Неће сметати другоме басе.хтмл компоненте.
Хајде да применимо логику на индек.хтмл
{% продужава 'басе.хтмл' %}
{% блок садржаја %}
<див цласс="контејнер текстуални центар" стиле="бела боја">
<х1>Ја сам индексни шаблон</h1>
<стр>Боотстрап и навигациону траку сам наследио од басе.хтмл</п>
</div>
{% ендблоцк %}
У индек.хтмл шаблон, користите {% проширити %} таг за проширење компоненти басе.хтмл. Унутар блок ознака {% блок садржаја %}, напишите сав свој код.
У индек.хтмл шаблон, имате Х1 и елемент пасуса. Можете користити ознаке шаблона унутар дивова да бисте позвали променљиве из поглед функција.
Тестирајте наслеђивање шаблона у претраживачу
Сада можете покренути сервер. Када то урадите, проверите у прегледачу да ли је индек.хтмл фајл наследио елементе од басе.хтмл. То укључује Боотстрап везе и навбар.хтмл шаблон.
Тхе индек.хтмл датотека треба да наследи стилове траке за навигацију и Боотстрап из основног шаблона. Ако јесте, исправно сте користили наслеђивање шаблона. Без тога, морали бисте да додате траку за навигацију и Боотстрап везе тамо где су вам потребне.
Такође, све промене које унесете у басе.хтмл одражаваће се на све шаблоне на које се протеже. Овај принцип је важан у руковању грешкама. Можете лако да идентификујете шаблоне са грешкама.
Наслеђивање шаблона је један од многих начина на које Дјанго примењује принцип Не понављај се (ДРИ). То ће учинити ваш развој много лакшим и једноставнијим.
Зашто би требало да користите наслеђивање Дјанго шаблона
Наслеђивање Дјанго шаблона је једна од његових најсложенијих карактеристика. Можда ће вам требати неко време да то схватите, али када то учините, уштедите много труда у развоју.
Наслеђивање шаблона вам омогућава да делите код између родитељских и подређених шаблона. Ово осигурава да не пишете код који се понавља у својим шаблонима.
Наслеђивање шаблона је важно у великим Дјанго пројектима. У таквим случајевима постоји много апликација и много шаблона за дизајн. Родитељски шаблони вам дају пуно контроле над осталим компонентама апликације.
Научивши Дјанго систем шаблона, можете уживати у писању чистог и моћног кода.