Riješeno: proširuje dvije baze.html

Kada se bavite razvojem web stranica, jedan od značajnih elemenata s kojima se većina programera susreće je predstavljanje istog izgleda i osjećaja na web stranici. Jedan od najučinkovitijih načina za postizanje takve dosljednosti je korištenje osnovnih predložaka ili base.html u Djangu, Python web okviru visoke razine koji promiče brzi razvoj. Drupal najbolje koristi koncept nasljeđivanja i pruža mehanizam za proširenje osnovnih predložaka na više podređenih predložaka.

Kako biste riješili problem dosljednog elementa dizajna na cijelom web-mjestu, može vam dobro doći proširenje dvaju osnovnih predložaka. Osnovni predlošci sadrže HTML skeletnu strukturu koja ostaje konstantna u web aplikaciji. Podređeni predlošci sadrže sadržaj za pojedinačne web stranice koji se razlikuje od stranice do stranice. Ovi podređeni predlošci nasljeđuju svojstva od nadređenih osnovnih predložaka korištenjem nasljeđivanja predložaka.

Zaronimo sada u objašnjenje koda koji se odnosi na problem korak po korak.

Osnovni predložak uzorka može se definirati kao:

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

Base.html se zatim može proširiti podređenim predloškom kao:

{% extends "base.html" %}

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

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

Radi se o proširenju jednog osnovnog predloška. Ali što ako imate dva osnovna predloška koja treba proširiti? Stvari ovdje postaju malo zamršene jer Python izravno ne podržava višestruko nasljeđivanje.

Zaobilazna rješenja za višestruke osnovne predloške

Trik leži u dijeljenju vašeg sadržaja u više odjeljaka ili blokova. Ispod je primjer kako možete proširiti dva osnovna predloška pomoću blokova.

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

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

Ovdje je blok 'content' iz osnovnog predloška dalje podijeljen u dva druga bloka – 'content_one' i 'content_two'. Različiti osnovni predlošci mogu proširiti ove blokove.

Python Libray: Django

Kada je u pitanju web razvoj s Pythonom, Django je najpopularniji i najmoćniji Python web okvir. Slijedi DRY (Don't Repeat Yourself) princip koji potiče ponovnu upotrebu komponenti. Django predložak, dio okvira Django, osnovni je, ali moćan alat za front-end web razvoj koji nam omogućuje da proširimo vrijednost Pythona na web.

Zaključno, moguće je proširiti dva osnovna predloška u Djangu, iako okvir izravno ne podržava višestruko nasljeđivanje. Ključno je segmentirati sadržaj u više blokova koje različiti osnovni predlošci mogu proširiti. Ovo je najučinkovitije rješenje problema i donosi snagu ponovne upotrebe vašim predlošcima, čineći vaš kôd učinkovitijim i lakšim za upravljanje.

Napomena: Django mehanizam za izradu predložaka koristi jezik pod nazivom Django Template Language (DTL) koji posuđuje dio svoje sintakse od Pythona, ali sam po sebi nije Python kod.

Povezani postovi:

Ostavite komentar