Wat is Django en hoe begin je ermee?
Als je nog niet weet wat een framework precies is of hoe frontend, backend en full-stack verschillen, lees dan eerst de pagina met de populairste frameworks. Hier begin je direct met Django. Dat is een backend framework voor Python, een programmeertaal die je misschien al kent van scripts of data-analyse. Django helpt je een complete webapplicatie te bouwen. In deze pagina leer je hoe je een eerste project opzet en welke begrippen je nodig hebt.
Waarom kies je voor Django?
Django verscheen in 2005. Het werd gemaakt bij een nieuwsredactie, waar snel en betrouwbaar werken belangrijk was. Die oorsprong zie je terug in de opzet. Django heeft veel ingebouwd. Denk aan een beheerpaneel, een inlogsysteem, een databasekoppeling en een controle van formulieren.
Django volgt het principe "batteries included". Dat betekent dat alles al in de doos zit, zoals batterijen bij een speelgoedauto. Je hoeft niets extra te kopen om te beginnen.
Python is een programmeertaal die je code makkelijk leesbaar maakt. Veel mensen leren Python als eerste taal. Het wordt ook veel gebruikt voor data-analyse en kunstmatige intelligentie.
Django is een goede keuze als je een project bouwt waarin veel gegevens staan. Denk aan een ledensysteem, een nieuwsplatform of een webwinkel met een voorraadlijst.
Hoe zet je een eerste Django-project op?
Je hebt Python nodig. Installeer het via de officiële Python-website. Python bevat ook pip, het hulpprogramma waarmee je extra pakketten installeert.
Het is slim om een virtuele omgeving te maken. Dat is een afgescheiden map voor de pakketten van één project. Zo blijven projecten netjes van elkaar gescheiden. Voer deze commando's uit in je terminal:
python -m venv venv
source venv/bin/activate
pip install django
django-admin startproject mysite
cd mysite
python manage.py runserver
Wat doen deze commando's?
python -m venv venvmaakt een virtuele omgeving aan in de mapvenv.source venv/bin/activateactiveert die omgeving. Op Windows gebruik jevenv\Scripts\activate.pip install djangoinstalleert Django.django-admin startproject mysitemaakt een nieuw project met de naammysite.cd mysitezet je in de projectmap.python manage.py runserverstart de ontwikkelserver.
Open daarna http://127.0.0.1:8000 in je browser. Je ziet de startpagina van Django. Stop de server met Ctrl + C.
Django brengt regelmatig nieuwe versies uit. Check de officiële Django-installatiegids als een commando anders werkt dan hierboven.
Hoe ziet een Django-project eruit?
Na startproject zie je zo'n structuur:
mysite/
manage.py ← het hulpprogramma van Django
mysite/
settings.py ← de instellingen van je project
urls.py ← de adressen van je website
wsgi.py ← het koppelstuk met de webserver
asgi.py ← het koppelstuk voor moderne verbindingen
Een app is een los onderdeel van je project. Maak er één aan met:
python manage.py startapp hello
Dat maakt een map hello met bestanden zoals views.py en models.py. Je schrijft je logica in die bestanden.
Hoe ziet een eerste Django-view eruit?
Open hello/views.py en vervang de inhoud door:
from django.http import HttpResponse
def home(request):
return HttpResponse("Hallo, wereld!")
Een view is een functie die een verzoek van de bezoeker ontvangt en een antwoord teruggeeft. In dit voorbeeld stuurt de view gewoon tekst terug.
Maak daarna het bestand hello/urls.py aan:
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
Koppel de app in mysite/urls.py:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('hello.urls')),
]
Voeg ook 'hello' toe aan de lijst INSTALLED_APPS in mysite/settings.py. Start daarna de server opnieuw en open http://127.0.0.1:8000. Je ziet "Hallo, wereld!".
Wat gebeurt hier?
- Het adres
/gaat viaurls.pynaar de viewhome. homemaakt het antwoord klaar en stuurt het terug.includezegt: kijk voor de verdere adressen in de urls van de apphello.
Welke kernbegrippen moet je kennen in Django?
- URL's koppelen een adres aan een view. Ze staan in
urls.py. - Views zijn de functies die het antwoord bepalen.
- Models beschrijven de gegevens die je wil opslaan. Django maakt daar automatisch een databasetabel van. Denk aan een kaartenbak met vakjes voor naam, e-mail en leeftijd.
- Templates zijn HTML-bestanden met ruimte voor gegevens. Django vult die ruimte in voordat de pagina naar de bezoeker gaat.
- Het beheerpaneel (de admin) is een kant-en-klare pagina waar je gegevens beheert. Open
http://127.0.0.1:8000/admin/om het te zien. Je maakt er een beheerder voor metpython manage.py createsuperuser. - Migraties zijn stappen die je databasetabellen aanpassen. Je maakt ze met
python manage.py makemigrationsen voert ze uit metpython manage.py migrate.
Wil je alles rustig doorlezen? De officiële Django-tutorial bouwt stap voor stap een kleine enquête-app. Dat is een goede oefening.
Wanneer kies je voor Django?
- Je team werkt al met Python, bijvoorbeeld voor data-analyse of kunstmatige intelligentie.
- Je wil snel een volwaardige backend opzetten zonder alles zelf te bouwen.
- Je bouwt een platform met veel gegevens en een beheerpaneel.
- Je houdt van een duidelijke structuur met vaste regels.
Vergelijk Django met Laravel. Beide zijn complete frameworks met veel ingebouwd, maar Laravel gebruikt PHP en Django gebruikt Python. Liever iets kleiners en vrijers met JavaScript? Dan past Express beter. Lees de overzichtspagina om de keuzes naast elkaar te zetten.
Vergeet je de virtuele omgeving niet te activeren? Dan installeer je Django in de verkeerde omgeving en krijg je een foutmelding dat django niet bestaat. Let op of je terminal de naam (venv) vooraan toont.
Wat leer je hierna?
Je weet nu hoe een Django-project is opgebouwd, hoe een view werkt en hoe je een adres koppelt. Probeer eens een tweede view te maken die je eigen naam toont. Daarna is het slim om models en het beheerpaneel te leren. De officiële Django-tutorial is daar de beste plek voor.
Je hebt de eerste stap in de Python-wereld gezet. Blijf bouwen, want elke pagina die je maakt, maakt je sterker.