Ga naar hoofdinhoud

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.

Wat is Python?

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:

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 venv maakt een virtuele omgeving aan in de map venv.
  • source venv/bin/activate activeert die omgeving. Op Windows gebruik je venv\Scripts\activate.
  • pip install django installeert Django.
  • django-admin startproject mysite maakt een nieuw project met de naam mysite.
  • cd mysite zet je in de projectmap.
  • python manage.py runserver start 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.

Lees de officiële handleiding

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:

Terminal
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:

hello/views.py
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:

hello/urls.py
from django.urls import path
from . import views


urlpatterns = [
path('', views.home, name='home'),
]

Koppel de app in mysite/urls.py:

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 via urls.py naar de view home.
  • home maakt het antwoord klaar en stuurt het terug.
  • include zegt: kijk voor de verdere adressen in de urls van de app hello.

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 met python manage.py createsuperuser.
  • Migraties zijn stappen die je databasetabellen aanpassen. Je maakt ze met python manage.py makemigrations en voert ze uit met python 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.

Veelgemaakte fout

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.

☕
Kop koffie nodig?

Probeer De Koffiejongens met 50% korting op je bestelling. Geteeld door boeren die met de natuur werken en eerlijk betaald krijgen.