Python Academy · Lezione

Viste e URL

Instradare le richieste alle viste

Lezione 3 di 413 passaggi

Viste e URL è una lezione Python Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Python Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Python Academy include 4 lezioni in totale.

Che cos'è una vista?

Una view Django è una funzione (o una classe) che riceve una richiesta web e restituisce una risposta web. Le viste contengono la logica della pagina e si trovano nel file views.py di un'app.

from django.http import HttpResponse

def home(request):
    return HttpResponse('Hello, world!')
print('A view takes request, returns response')

L'argomento request

Ogni vista riceve un oggetto request che contiene i dettagli della richiesta in arrivo: metodo, dati GET/POST, utente e altro ancora.

from django.http import HttpResponse

def info(request):
    return HttpResponse('Method: ' + request.method)
print('request carries the incoming data')

Pattern degli URL

Il file urls.py di un'app associa i percorsi URL alle viste utilizzando un elenco chiamato urlpatterns e la funzione path().

# blog/urls.py
from django.urls import path
from . import views

urlpatterns = [
    path('', views.home),
]
print('path maps a URL to a view')

Assegnazione di un nome agli URL

Assegni un name a un pattern, così potrà farvi riferimento altrove senza codificare direttamente il percorso.

from django.urls import path
from . import views

urlpatterns = [
    path('', views.home, name='home'),
]
print("name='home' lets you reference it later")

Parametri degli URL

Catturi parti dell'URL con convertitori come <int:post_id>. Il valore catturato viene passato alla vista.

from django.urls import path
from . import views

urlpatterns = [
    path('post/<int:post_id>/', views.detail, name='detail'),
]
print('post/5/ -> detail(request, post_id=5)')

Lettura del parametro

Il valore catturato arriva come argomento denominato, il cui nome corrisponde a quello del convertitore.

from django.http import HttpResponse

def detail(request, post_id):
    return HttpResponse('Post ' + str(post_id))
print('View receives post_id')

Inclusione degli URL dell'app

Il file urls.py principale del progetto importa gli URL di ogni app tramite include(), mantenendo modulare il routing.

# mysite/urls.py
from django.urls import path, include

urlpatterns = [
    path('blog/', include('blog.urls')),
]
print('include() wires up app urls')

Rendering dei template

La scorciatoia render() combina un template con un dizionario di contesto e restituisce un HttpResponse.

from django.shortcuts import render

def home(request):
    return render(request, 'home.html', {'name': 'Alice'})
print('render combines template + context')

Helper per gli errori 404

get_object_or_404() recupera un oggetto oppure genera un errore 404 se l'oggetto non esiste: è un pattern comune e sicuro.

from django.shortcuts import get_object_or_404, render
from .models import Post

def detail(request, post_id):
    post = get_object_or_404(Post, id=post_id)
    return render(request, 'detail.html', {'post': post})
print('get_object_or_404 handles missing data')

Risoluzione inversa degli URL

In Python, reverse('detail', args=[5]) costruisce un URL a partire dal nome di un pattern. Nei template, il tag {% url %} svolge la stessa funzione.

from django.urls import reverse
# reverse('detail', args=[5]) -> '/blog/post/5/'
# In a template: {% url 'detail' post.id %}
print('reverse builds URLs from names')

Viste basate su classi

Django offre anche class-based views come ListView e DetailView, che gestiscono i pattern comuni con meno codice.

from django.views.generic import ListView
from .models import Post

class PostList(ListView):
    model = Post
print('ListView lists objects automatically')

Verifica rapida

Verifichi la Sua conoscenza delle viste e degli URL.

Riepilogo

Ha indirizzato le richieste verso le viste.

  • Le viste ricevono un request e restituiscono una risposta
  • urlpatterns e path() associano gli URL alle viste, facoltativamente con un name
  • Convertitori come <int:id> catturano parti degli URL
  • include() collega gli URL delle app; render() e get_object_or_404() sono scorciatoie utili
Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
76
Lezioni
320

Domande Frequenti

La lezione «Viste e URL» è gratuita?

Sì — il testo completo di «Viste e URL» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Python Academy, passa a CoddyKit PRO. Il corso Python Academy include 4 lezioni in totale.

Cosa imparerò in «Viste e URL»?

Instradare le richieste alle viste Eserciti Python Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Python Academy?

Non è richiesta alcuna esperienza precedente. Python Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Viste e URL»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Python Academy?

Sì. Ogni lezione Python Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Progetti e app
  2. Modelli e migrazioni
  3. Viste e URL
  4. L'amministrazione di Django
← Torna a Python Academy