Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Yksi Djangon tehokkaimmista ominaisuuksista on sen kyky käyttää koodia dynaamisesti uudelleen. Mallin periytyminen mahdollistaa koodin jakamisen ylä- ja alamallien välillä. Se vähentää huomattavasti päällekkäistä työtä.

Djangon mallikieli on suunniteltu sulautumaan HTML: ään. Sinun on helppo työskennellä Djangon mallien kanssa, jos olet työskennellyt HTML-koodin kanssa aiemmin. Muilla tekstipohjaisilla mallikielillä, kuten Smartylla tai Jinja2:lla, on samanlainen syntaksi.

Opitaan lisää mallipohjan periytymisestä rakentamalla Django-projekti.

Mikä on Django-malli?

Djangossa malli on tekstitiedosto, joka voi luoda minkä tahansa tekstipohjaisen muodon, kuten HTML: n, XML: n tai CSV: n.

Django-mallitunnisteet ohjata loogisia sulkevia muuttujia ja arvoja mallissa. Tunnisteet auttavat erottamaan ohjelman logiikan malliesittelystä. Ne auttavat myös pitämään mallisi puhtaina ja järjestyksessä.

instagram viewer

Djangossa on monia sisäänrakennettuja tunnisteita, jotka näyttävät siltä {% tag %}. Tunnisteet ovat hyödyllisiä monella tapaa. He voivat luoda tekstiä tulosteeseen, suorittaa silmukoita ja ladata tietoja malliin.

Käytät tässä projektissa tageja mallin periytymisen osoittamiseen.

Luo Django-projekti

Aloita luoda Django-projekti. Luo sovellus nimeltä malleja. Kun olet tehnyt niin, olet valmis luomaan sovellukselle näkymätoiminnon, URL-polun ja mallit mallien periytymisen osoittamiseksi.

Luo näkymätoiminto

Luo ensin a näkymä toiminto, joka tekee mallit. Tässä tapauksessa hahmonnat index.html sapluuna. Tuo renderöidä menetelmä Django-pikakuvakkeista. Luo sitten näkymäfunktio nimeltä indeksi, joka palauttaa ja hahmontaa indeksimallin.

alkaen django.shortcuts tuonti renderöidä
# Luo näkemyksesi täällä.
defindeksi(pyyntö):
palauta renderöinti (pyyntö,'index.html')

Luo URL-polku

Luo seuraavaksi a URL-polku Näytä-toiminto näyttää mallit. Tuo polku funktio django.urlsista ja näkymä toiminto alkaen views.py tiedosto. Tuo sitten asetukset ja staattinen renderöidä malleissa mahdollisesti olevat kuvat ja mediat.

alkaen django.urls tuonti polku
alkaen. tuonti näkymät
alkaen django.conf tuonti asetukset
alkaen django.conf.urls.static tuontistaattinen
urlpatterns=[
polku ('',views.index, name='indeksi'),
]
josasetukset.DEBUG:
urlpatterns+=staattinen(asetukset. MEDIA_URL, asiakirjan_juuri=asetukset. MEDIA_ROOT)

Luo malleja

Nyt kun sinulla on näkymä ja URL-osoite polku, luo mallit. Jos haluat osoittaa mallin periytymisen, luo a base.html ylätason mallina. The base.html tiedostossa on yleisiä elementtejä, joiden kanssa haluat jakaa index.html,lapsimalli.

{% load bootstrap5 %}
{% kuorma staattinen %}
<!DOCTYPE html>
<html lang="fi">
<pää>
<meta charset="UTF-8">
<meta http-equiv="X-UA-yhteensopiva" sisältö="IE = reuna">
<metanimi="näkymä" sisältö="leveys = laitteen leveys, alkumittakaava = 1,0">
<!-- otsikot -->
{% jos otsikko %}
<otsikko> Perityt mallit {{title}}</title>
{% muu %}
<otsikko> Perityt mallit </title>
{% loppu Jos %}
{% block styles %}
{% bootstrap_css %}
<linkki rel="tyylisivu" href="{% staattista 'css/style.css' %}">
{% endblock %}
</head>
<kehon>
{% sisältää 'navbar.html' %}
{% block content %} {% endblock %}
<!-- Bootstrap-linkit -->
<komentosarja src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" eheys ="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" crossorigin="anonyymi"></script>
</body>
</html>

Lataa ensin Bootstrap ja staattiset riippuvuudet tiedostoon base.html sapluuna. Sinä pystyt käytä Bootstrap-kehystä Django-projektisi kanssa HTML-sivujen tyyliin. Yläosaan ladattu staattinen riippuvuus lataa staattiseen kansioon sisältyvät resurssit.

Django-mallien avulla voit välittää sisällön näyttämisestä vastaavia logiikkaa. Mallin tagit koostuvat tekstistä, jota ympäröi "{%" ja "%}"hahmot. The tai muuten lauseke tarkistaa ehdot view-funktiossa. Jos ehto on tosi, se näyttää sisällön ensimmäisessä lohkossa; jos epätosi, se hahmontaa sisällön toisessa.

The base.html tiedosto näyttää myös sisällön navbar.html paikkaan, johon sijoitat mallitunnisteet. Tämä tarkoittaa aina, kun pidennät base.html, navbar.html on myös perinnöllinen. Mikä tahansa malli, joka laajentaa base.html perii minkä tahansa elementin an {% sisältää %} tag.

Mikä tahansa teksti, jota ympäröi {{}} on mallimuuttuja. Mallin muuttujat ovat dynaamisia tietoja, jotka näkymäfunktiot tarjoavat. Django käyttää myös lohkotunnisteita, jotka käyttävät avointa tunnistetta, kuten {% block content %}, ja sulkeva tagi, kuten {% endblock %}.

Estätagit antavat alatason mallien ohittaa ylätason mallien sisällön. Tässä tapauksessa index.html voi korvata sen sisällön lohkotunnisteilla suljetulla alueella. Se ei häiritse toista base.html komponentit.

Sovelletaan logiikkaa index.html

{% laajenee 'base.html' %}
{% block content %}
<div class="säilön tekstikeskus" tyyli ="väri valkoinen">
<h1>Minä olen hakemistomalli</h1>
<s>Perin Bootstrapin ja navigointipalkin base.html: stä</s>
</div>
{% endblock %}

Vuonna index.html mallia, käytä {% laajennus %} -tunniste laajentaaksesi komponentteja base.html. Lohkotunnisteiden sisällä {% block content %}, kirjoita kaikki koodisi.

Vuonna index.html malliin, sinulla on H1- ja kappaleelementti. Voit käyttää divs-elementtien sisällä olevia mallitageja kutsuaksesi muuttujia tiedostosta näkymä toiminto.

Testaa mallipohjan periytymistä selaimessa

Voit nyt käyttää palvelinta. Kun olet tehnyt niin, tarkista selaimesta, onko index.html tiedosto peri elementit base.html. Se sisältää Bootstrap-linkit ja navbar.html sapluuna.

The index.html tiedoston tulee periä navigointipalkin ja Bootstrap-tyylit perusmallista. Jos näin on, olet käyttänyt mallin periytymistä oikein. Ilman sitä sinun olisi pitänyt lisätä navigointipalkki ja Bootstrap-linkit sinne, missä niitä tarvitsit.

Myös kaikki muutokset, joita teet base.html heijastuu kaikkiin malleihin, joihin se ulottuu. Tämä periaate on tärkeä virheiden käsittelyssä. Voit helposti tunnistaa virheitä sisältäviä malleja.

Mallin periytyminen on yksi monista tavoista, joilla Django toteuttaa Don't Repeat Yourself (DRY) -periaatteen. Se tekee kehityksestäsi paljon helpompaa ja yksinkertaisempaa.

Miksi sinun pitäisi käyttää Django-mallin perintöä

Djangon malliperintö on yksi sen monimutkaisimmista ominaisuuksista. Sen ymmärtäminen voi viedä jonkin aikaa, mutta kun ymmärrät, se säästää paljon kehitysponnisteluja.

Mallin periytyminen mahdollistaa koodin jakamisen ylä- ja alatason mallien välillä. Tämä varmistaa, että et kirjoita toistuvaa koodia malleihin.

Mallin periytyminen on tärkeää suurissa Django-projekteissa. Tällaisissa tapauksissa suunniteltavana on monia sovelluksia ja monia malleja. Päämallien avulla voit hallita paljon sovelluksen muita osia.

Oppimalla Django-mallijärjestelmän voit nauttia puhtaan ja tehokkaan koodin kirjoittamisesta.