Views en URL's
Routeer verzoeken naar views
Views en URL's is een gratis Python Academy-les op CoddyKit. Dit is les 3 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Python Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Python Academy bevat in totaal 4 lessen.
Wat is een weergave?
Een Django-weergave is een functie (of klasse) die een webverzoek ontvangt en een webantwoord terugstuurt. In weergaven staat de logica voor je pagina's; ze staan in het views.py-bestand van een app.
from django.http import HttpResponse
def home(request):
return HttpResponse('Hello, world!')
print('A view takes request, returns response')Het argument request
Elke weergave ontvangt een object request met details over het binnenkomende verzoek: de methode, GET/POST-gegevens, de gebruiker en meer.
from django.http import HttpResponse
def info(request):
return HttpResponse('Method: ' + request.method)
print('request carries the incoming data')URL-patronen
Het urls.py-bestand van een app koppelt URL-paden aan weergaven met behulp van een lijst met de naam urlpatterns en de functie path().
# blog/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('', views.home),
]
print('path maps a URL to a view')URL's een naam geven
Geef een patroon een name, zodat je er elders naar kunt verwijzen zonder het pad rechtstreeks in de code te zetten.
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
print("name='home' lets you reference it later")URL-parameters
Vang delen van de URL op met omzetters zoals <int:post_id>. De opgevangen waarde wordt aan de weergave doorgegeven.
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)')De parameter lezen
De opgevangen waarde komt aan als een benoemd argument dat overeenkomt met de naam van de omzetter.
from django.http import HttpResponse
def detail(request, post_id):
return HttpResponse('Post ' + str(post_id))
print('View receives post_id')URL's van apps opnemen
Het root-urls.py-bestand van het project haalt de URL's van elke app op met include(), zodat de routering modulair blijft.
# mysite/urls.py
from django.urls import path, include
urlpatterns = [
path('blog/', include('blog.urls')),
]
print('include() wires up app urls')Sjablonen weergeven
De snelkoppeling render() combineert een sjabloon met een contextwoordenboek en retourneert een HttpResponse.
from django.shortcuts import render
def home(request):
return render(request, 'home.html', {'name': 'Alice'})
print('render combines template + context')404-hulpfuncties
get_object_or_404() haalt een object op of veroorzaakt een 404 als het ontbreekt; dit is een veelgebruikt en veilig patroon.
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')URL's omkeren
In Python maakt reverse('detail', args=[5]) een URL op basis van een patroonnaam. In sjablonen doet de tag {% url %} hetzelfde.
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')Op klassen gebaseerde weergaven
Django biedt ook op klassen gebaseerde weergaven zoals ListView en DetailView, die veelvoorkomende patronen met minder code afhandelen.
from django.views.generic import ListView
from .models import Post
class PostList(ListView):
model = Post
print('ListView lists objects automatically')Korte controle
Test je kennis van weergaven en URL's.
Samenvatting
Je hebt verzoeken naar weergaven gerouteerd.
- Weergaven ontvangen een
requesten retourneren een antwoord urlpatterns+path()koppelen URL's aan weergaven, eventueel met eenname- Omzetters zoals
<int:id>vangen delen van URL's op include()koppelt URL's van apps;render()enget_object_or_404()zijn handige snelkoppelingen
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 76
- Lessen
- 320
Veelgestelde vragen
Is de les “Views en URL's” gratis?
Ja — de volledige tekst van “Views en URL's” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Python Academy wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Python Academy bevat in totaal 4 lessen.
Wat leer ik in “Views en URL's”?
Routeer verzoeken naar views Je oefent met Python Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Python Academy te beginnen?
Ervaring vooraf is niet nodig. Python Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 3 van 4.
Hoe lang duurt de les “Views en URL's”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Python Academy?
Ja. Elke les over Python Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- Projecten en apps
- Modellen en migraties
- Views en URL's
- De Django Admin