Rezolvat: extinde două baze.html

Când se ocupă de dezvoltarea web, unul dintre elementele semnificative pe care le întâlnesc majoritatea dezvoltatorilor este prezentarea aceluiași aspect și senzație pe site. Una dintre cele mai eficiente modalități de a obține o astfel de consecvență este utilizarea șabloanelor de bază sau base.html în Django, un cadru web Python de nivel înalt care promovează dezvoltarea rapidă. Drupal utilizează conceptul de moștenire la maximum și oferă un mecanism pentru a extinde șabloanele de bază la mai multe șabloane copii.

Pentru a rezolva problema de a avea un element de design consistent pe site-ul dvs., extensia a două șabloane de bază poate fi utilă. Șabloanele de bază conțin structura scheletică HTML care rămâne constantă în aplicația web. Șabloanele secundare conțin conținut pentru pagini web individuale, care variază de la o pagină la alta. Aceste șabloane copil moștenesc proprietăți de la șabloanele de bază părinte folosind moștenirea șablonului.

Acum să pătrundem în explicația pas cu pas a codului legat de problemă.

Șablonul de bază al eșantionului poate fi definit astfel:

<!DOCTYPE html>
<html lang="en">
<head>
    {% block head %}
    <title>My Site</title>
    {% endblock %}
</head>
<body>
    {% block content %}
    {% endblock %}
</body>
</html>

Base.html poate fi apoi extins printr-un șablon copil ca:

{% extends "base.html" %}

{% block head %}
    <title>My Page</title>
{% endblock %}

{% block content %}
    <h1>Welcome!</h1>
    <p>Here is your content...</p>
{% endblock %}

Este vorba despre extinderea unui singur șablon de bază. Dar ce se întâmplă dacă aveți două șabloane de bază de extins? Lucrurile devin puțin complicate aici, deoarece Python nu acceptă direct moștenirea multiplă.

Soluții pentru mai multe șabloane de bază

Trucul constă în împărțirea conținutului în mai multe secțiuni sau blocuri. Mai jos este un exemplu despre cum puteți reuși să extindeți două șabloane de bază folosind blocuri.

{% block content %}
    {% block content_one %}
    {% endblock %}

    {% block content_two %}
    {% endblock %}
{% endblock %}

Aici, blocul „conținut” din șablonul de bază este împărțit în continuare în alte două blocuri – „conținut_un” și „conținut_doi”. Diferitele șabloane de bază pot extinde aceste blocuri.

Bibliotecă Python: Django

Când vine vorba de dezvoltarea web cu Python, Django este cel mai popular și mai puternic cadru web Python. Urmează principiul DRY (Don’t Repeat Yourself) care încurajează reutilizarea componentelor. Motorul de șabloane Django, parte a cadrului Django, este un instrument de bază, dar puternic pentru dezvoltarea web front-end, care ne permite să extindem valoarea Python pe web.

În concluzie, este posibilă extinderea a două șabloane de bază în Django, deși cadrul nu acceptă direct moștenirea multiplă. Cheia este să segmentezi conținutul în mai multe blocuri pe care diferite șabloane de bază le pot extinde. Aceasta este cea mai eficientă soluție la problemă și aduce puterea reutilizabilității șabloanelor dvs., făcând astfel codul dvs. mai eficient și mai ușor de gestionat.

Notă: Motorul de șabloane Django utilizează un limbaj numit Django Template Language (DTL) care împrumută o parte din sintaxa sa din Python, dar nu este cod Python.

Postări asemănatoare:

Lăsați un comentariu