Viste e URL
Instradare le richieste alle viste
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
requeste restituiscono una risposta urlpatternsepath()associano gli URL alle viste, facoltativamente con unname- Convertitori come
<int:id>catturano parti degli URL include()collega gli URL delle app;render()eget_object_or_404()sono scorciatoie utili
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.