Arne Coomans

Een Nieuw Django Project Starten

Een Nieuw Django Project Starten

Django is een krachtig en uitgebreid framework om web-applicaties in te maken met Python. Het framework regelt structuur, doet database-beheer en helpt met het schrijven van herbruikbare elementen binnen de applicatie. Met Django, en een beetje ervaring, zet je snel een structuur en werkende applicatie neer. De laatste tijd heb ik enkele privé-projecten opgezet in Django en heb ik het één en ander geleerd.

In dit artikel neem ik je mee in het opzetten van je eerste Django-project. Welke stappen onderneem je om een Django-project op te starten en te beginnen met het bouwen van je eigen applicatie?

Waarom Django?

Django is een compleet framework dat helpt bij het opzetten van je applicatie. Met de scheiding tussen Models en Views heb je duidelijk waar welke logica moet komen. Toch zijn zowel de Models als Views goed uit te breiden naar precies je eigen wensen. Een Django-applicatie kan er heel simpel uit zien en toch goed werken.

Wat heb je nodig?

Om een Django-project te starten heb je nodig:

  • Terminal-toegang tot je ontwikkel-omgeving. Ik ga in dit artikel uit van een Linux-based omgeving (macos, Ubuntu);
  • Python met VirtualEnv geïnstalleerd;
  • Een goed tekstbewerkingsprogramma. Ik gebruik Visual Studio Code;

De virtuele omgeving

Je Django-applicatie heb je het liefst draaien in een virtuele omgeving (explainer). Binnen deze omgeving kan je modules installeren die alleen binnen die omgeving beschikbaar zijn. Hierdoor gaat je applicatie niet stuk als je voor een ander project een module nodig hebt, verwijdert of updated.

Als virtuele omgeving gebruiken we venv, welke wordt meegeleverd bij Python3. Controleer dat venv geïnstalleerd is met het volgende commando: python -m venv Als het goed is krijg je de volgende melding:

usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
            [--upgrade] [--without-pip] [--prompt PROMPT]
            ENV_DIR [ENV_DIR ...]
venv: error: the following arguments are required: ENV_DIR

Ik vind het fijn om mijn virtual environments centraal op te slaan. Deze sla ik in mijn homedirectory op in ~/.venv/. Start een nieuwe virtual environment: python -m venv ~/.venv/development Activeer de virtual environment: source ~/.venv/development/bin/activate Je ziet dat je virtual environment actief is omdat er in de console aan het begin van de volgende regel nu staat: (development) %

Installeer Django

Binnen de virtual environment is Django nog niet geïnstalleerd. Django installeer je als Python-module. Na installatie is Django beschikbaar en kan je django-admin gebruiken om projecten te starten. python -m pip install django Er is nog geen django-code of project te zien.

Een Django-project beginnen

Een Django-project is de thuisbasis van de Django-apps. Het Django-project bevat de centrale configuratie, de url-configuratie begint hier en de database wordt hier beheerd.

django-admin startproject myproject

Er komt een nieuwe directory "myproject/". Hierin vind je een directory "myproject/myproject/". Daarin vind je de belangrijke bestanden "settings.py" en "urls.py". In "myproject/" vind je ook het bestand manage.py, een applicatie die je veel zal gebruiken om data op te slaan, gebruikers te beheren en je applicatie te testen.

Meer over de Django Mapindeling lees je in de Explainer: Django's Mapindeling

Open de directory van je project. Je werkt vanuit deze directory. cd myproject

Er is nog geen plek om je Models en Views te bewerken. Dit hoort in de Application. Maak een app aan: python manage.py startapp myapp Er komt een nieuwe directory "myproject/myapp/". Hier vind je eindelijk de bestanden views.py en models.py.

Voorbereiding en configuratie

touch myapp/urls.py Het bestand om url-configuratie te beheren bestaat nog niet. Het is slim om deze binnen je app te houden en niet gebruik te maken van het project-urlbestand "myproject/myproject/urls.py". Je importeert dit bestand straks vanuit het project-urlbestand. In dit bestand maak je alvast een leeg urlpattern aan:

from django.urls import path

urlpatterns = [
]

Nu je app klaar is, kan je deze inladen in je project-settings. Open myproject/settings.py en voeg 'myapp' toe aan de installed apps:

  INSTALLED_APPS = [
    'django.contrib.admin',
    [...]
    'django.contrib.staticfiles',
    'myapp',
]

Dan is het tijd om je url's te importeren. In myproject/urls.py zorg je dat include ook geïmporteerd wordt, en laad je het url-bestand van je app:

from django.urls import include, path
[...]
urlpatterns = [
  path('', include('myapp.urls')),
  path('admin/', admin.site.urls),
]

Je applicatie ontwikkelen

Nu ben je klaar om je eerste Model en View te schrijven. touch myapp/models/myapp.py touch myqpp/views/myapp.py In de __init__.py bestanden laad je respectievelijk de Model of View: from .myapp import *

Meer leren

Dit is een eerste stap om een Django-project aan te maken. Maar in deze post vind je niet hoe je een Model schrijft, hoe je de database-structuur opbouwt of hoe je met een view deze opgslagen informatie verwerkt. Een goede manier om te leren wat Django nog meer kan is deze tutorial op Djangoproject.com.