Video Corso Django 1.11 - Programmare in Python

Crea il Tuo Blog con Django 1.11 e Bootstrap 3.3.7

05: Architettura MTV, Urls e Views

Arrivati a questo punto possiamo iniziare a scrivere il le nostre url personali, che puntino alle risorse(quindi alle pagine) presenti nel nostro blog!

Si perché come fa Django a sapere che pagina deve mostrarci? Ad esempio, che succederebbe se visitassimo l'indirizzo su mydjangoblog/posts ?

Come è facile inutire, otterremo errore, in quanto django non conosce quell'url!

Dovremo quindi andare a scrivere i vari indirizzi in una sorta di registro, che è il file urls.py... ma prima di fare ció è bene avere chiaro in mente come funziona Django a livello Architetturale!

Django segue un sistema chiamato MTV, che sta per Model-Template-View, una "variazione" del Pattern Architetturale MCV, Model-View-Controller:

Usiamo include, ovvero la funzione che ci permette di includere i file urls.py di ciascuna applicazione all'interno del progetto principale, in modo da rendere il tutto modulare.

#urls.py del progetto 

from django.conf.urls import url
from django.conf.urls import include
from django.contrib import admin

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^', include("posts.urls")),
]

Quindi quando si aprirà la pagina principale del nostro blog, allora verranno inclusi gli url presenti nel file urls.py della nostra APP posts. E quindi dal urls.py dell'APP posts andremo a richiamare le view che useremo per renderizzare i template html.

# urls.py dell'APP posts

from django.conf.urls import url
from . import views as posts_views

urlpatterns = [
    url(r'^$', posts_views.lista_post, name="lista"),
    url(r'^post-singolo/$', posts_views.post_singolo,  name="singolo"),
    url(r'^contatti/$', posts_views.contatti, name="contatti"),
]

Andiamo ora a popolare il nostro file views.py:

#views.py

from django.shortcuts import render

# Create your views here.

def lista_post():
    pass

def post_singolo():
    pass

def contatti():
    pass
Menu della Serie