I lettori come te aiutano a sostenere MUO. Quando effettui un acquisto utilizzando i link sul nostro sito, potremmo guadagnare una commissione di affiliazione. Per saperne di più.

Una delle funzionalità più potenti di Django è la sua capacità di riutilizzare il codice in modo dinamico. L'ereditarietà del modello consente la condivisione del codice tra modelli padre e figlio. Riduce notevolmente la duplicazione degli sforzi.

Django ha il suo linguaggio modello progettato per fondersi con l'HTML. Troverai facile lavorare con i modelli di Django se hai già lavorato con il codice HTML. Altri linguaggi modello basati su testo come Smarty o Jinja2 hanno una sintassi simile.

Impariamo di più sull'ereditarietà dei modelli costruendo un progetto Django.

Cos'è un modello Django?

In Django, un modello è un file di testo che può generare qualsiasi formato basato su testo, come HTML, XML o CSV.

Tag modello Django controllare la logica che racchiude variabili e valori nel modello. I tag aiutano a separare la logica del programma dalla presentazione del modello. Aiutano anche a mantenere i tuoi modelli puliti e organizzati.

instagram viewer

Django ha molti tag incorporati, che sembrano {% tag %}. I tag sono utili in molti modi. Possono creare testo nell'output, eseguire cicli e caricare informazioni nel modello.

Utilizzerai i tag in questo progetto per dimostrare l'ereditarietà del modello.

Crea un progetto Django

Per iniziare, creare un progetto Django. Crea un'app denominata modelli. Dopo averlo fatto, sei pronto per creare una funzione di visualizzazione per l'app, un percorso URL e modelli per dimostrare l'ereditarietà del modello.

Crea una funzione di visualizzazione

Per prima cosa, crea un file visualizzazione funzione che esegue il rendering dei modelli. In questo caso, renderai il file indice.html modello. Importa il rendere metodo dalle scorciatoie di Django. Quindi creare una funzione di visualizzazione denominata index che restituisca e visualizzi il modello di indice.

da django.scorciatoie importare rendere
# Crea le tue visualizzazioni qui.
defindice(richiesta):
reso reso (richiesta,'indice.html')

Crea un percorso URL

Quindi, crea un file Percorso dell'URL per la funzione di visualizzazione per visualizzare i modelli. Importa il sentiero funzione da django.urls e il file visualizzazione funzione da viste.py file. Quindi importa impostazioni E statico per eseguire il rendering di qualsiasi immagine e supporto che potresti avere nei modelli.

da django.urls importare sentiero
da. importare visualizzazioni
da django.conf importare impostazioni
da django.conf.urls.static importarestatico
schemi URL=[
sentiero('',views.index, nome='indice'),
]
Seimpostazioni.DEBUG:
pattern URL+=statico(impostazioni. MEDIA_URL, document_root=impostazioni. MEDIA_ROOT)

Crea modelli

Ora che hai il visualizzazione E URL path, creare i modelli. Per dimostrare l'ereditarietà del modello, creare un file base.html come modello padre. IL base.html il file conterrà elementi generali con cui desideri condividere indice.html, il modello figlio.

{% caricamento bootstrap5 %}
{% carico statico %}
<!DOCTYPE html>
<html lang="it">
<Testa>
<meta set di caratteri="UTF-8">
<meta http-equiv="Compatibile con X-UA" contenuto="IE=bordo">
<nome meta="finestra" contenuto="width=larghezza-dispositivo, scala-iniziale=1.0">
<!-- titoli -->
{% se titolo %}
<titolo> Modelli ereditati {{title}}</title>
{% altro %}
<titolo> Modelli ereditati </title>
{% finisci se %}
{% stili di blocco %}
{% bootstrap_css %}
<collegamento rel="foglio di stile" href="{% statico 'css/stile.css' %}">
{% blocco finale %}
</head>
<corpo>
{% includere 'barra di navigazione.html' %}
{% blocco contenuto %} {% blocco finale %}
<!-- Collegamenti bootstrap -->
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrità="sha384-MrcW6ZMFYlzcLA8Nl+NtUVF0sA7MsXsP1UyJoMp4YLEuNSfAP+JcXn/tWtIaxVXM" origine incrociata="anonimo"></script>
</body>
</html>

Innanzitutto, carica Bootstrap e le dipendenze statiche nel file base.html modello. Puoi usa il framework Bootstrap con il tuo progetto Django per definire lo stile delle pagine HTML. La dipendenza statica caricata in alto caricherà le risorse incluse nella cartella statica.

I modelli Django ti consentono di passare bit di logica responsabili della visualizzazione del contenuto. I tag del modello sono costituiti da testo circondato da "{%" E "%}" caratteri. IL se altro l'istruzione controlla le condizioni nella funzione di visualizzazione. Se la condizione è vera rende il contenuto nel primo blocco; se falso, renderà il contenuto nel secondo.

IL base.html file renderà anche il contenuto di barra di navigazione.html proprio dove posizioni i tag del modello. Ciò significa che ogni volta che estendi il file base.html, barra di navigazione.html è anche ereditato. Qualsiasi modello che estende il file base.html erediterà qualsiasi elemento con un {% includere %} etichetta.

Qualsiasi testo circondato da {{}} è una variabile modello. Le variabili modello sono dati dinamici forniti dalle funzioni di visualizzazione. Django utilizza anche tag di blocco che utilizzano un tag aperto, come {% blocca contenuto %}e un tag di chiusura, come {% blocco finale %}.

I tag di blocco consentono ai modelli figlio di sovrascrivere il contenuto dei modelli padre. In questo caso, il indice.html può sostituire il suo contenuto nell'area racchiusa dai tag di blocco. Non interferirà con l'altro base.html componenti.

Applichiamo la logica al indice.html

{% estende 'base.html' %}
{% blocca contenuto %}
<classe div="centro testo contenitore" stile="colore bianco">
<h1>Io sono il modello dell'indice</h1>
<P>Ho ereditato Bootstrap e la barra di navigazione da base.html</P>
</div>
{% blocco finale %}

Nel indice.html modello, utilizzare il {% estendere%} tag per estendere i componenti del file base.html. All'interno dei tag di blocco {% blocca contenuto %}, scrivi tutto il tuo codice.

Nel indice.html modello, hai un elemento H1 e un paragrafo. È possibile utilizzare i tag del modello all'interno dei div per chiamare le variabili dal file visualizzazione funzione.

Verifica l'ereditarietà dei modelli nel browser

Ora puoi eseguire il server. Dopo averlo fatto, controlla nel browser per vedere se il file indice.html file ha ereditato gli elementi di base.html. Ciò include i collegamenti Bootstrap e il file barra di navigazione.html modello.

IL indice.html dovrebbe ereditare gli stili della barra di navigazione e Bootstrap dal modello di base. In tal caso, hai utilizzato correttamente l'ereditarietà del modello. Senza di esso, avresti dovuto aggiungere la barra di navigazione e i collegamenti Bootstrap dove ne avevi bisogno.

Inoltre, qualsiasi modifica apportata al file base.html si rifletterà su tutti i modelli a cui si estende. Questo principio è importante nella gestione degli errori. Puoi facilmente identificare i modelli con bug.

L'ereditarietà del modello è uno dei molti modi in cui Django implementa il principio Don't Repeat Yourself (DRY). Renderà il tuo sviluppo molto più facile e semplice.

Perché dovresti usare l'ereditarietà del modello Django

L'ereditarietà del modello di Django è una delle sue caratteristiche più complesse. Potrebbe volerci del tempo per capirlo, ma una volta fatto, risparmia un sacco di sforzi di sviluppo.

L'ereditarietà del modello consente di condividere il codice tra i modelli padre e figlio. Ciò garantisce di non scrivere codice ripetitivo nei modelli.

L'ereditarietà del modello è importante nei grandi progetti Django. In questi casi, ci sono molte applicazioni e molti modelli da progettare. I modelli principali ti danno molto controllo sugli altri componenti dell'applicazione.

Imparando il sistema di modelli Django, puoi divertirti a scrivere codice pulito e potente.