# Django Introductiegids: Bouw snel je eerste website
Django is een efficiënt en krachtig Python webontwikkelingsframework, geschikt voor het bouwen van complexe webapplicaties en websites. Dit framework integreert veel nuttige functies, waardoor ontwikkelaars snel robuuste applicaties kunnen bouwen. Of je nu een beginner bent of enige ervaring hebt, Django biedt je veel gemak. In dit artikel leren we je stap voor stap hoe je met Django je eerste website kunt bouwen.
## 1. Voorbereiding van de omgeving
Zorg ervoor dat je ontwikkelomgeving Python en pip (de pakketbeheerder voor Python) heeft geïnstalleerd voordat je begint. Django vereist Python versie 3.6 of hoger.
### Installeren van Python en pip
Je kunt de versie die geschikt is voor jouw besturingssysteem downloaden en installeren van [de officiële Python-website](https://www.python.org/downloads/). Controleer na de installatie de versies van Python en pip via de opdrachtregel:
```bash
python --version
pip --version
```
### Installeren van Django
Het installeren van Django via pip is heel eenvoudig. Typ de volgende opdracht in de opdrachtregel:
```bash
pip install django
```
Zorg ervoor dat je na de installatie de versie van Django kunt vinden in de opdrachtregel:
```bash
django-admin --version
```
## 2. Een Django-project aanmaken
Nadat je Django hebt geïnstalleerd, kunnen we beginnen met het aanmaken van een nieuw project. Een project is de basisstructuur van Django en bevat je applicaties en configuraties.
### Project aanmaken
Voer de volgende opdracht uit in de map waar je het project wilt aanmaken:
```bash
django-admin startproject myproject
```
Dit maakt een nieuwe map aan met de naam `myproject`, die enkele standaardbestanden en een directorystructuur bevat.
### Directorystructuur
Je zult de volgende directorystructuur zien:
```
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
asgi.py
wsgi.py
```
- `manage.py`: Het beheertool van Django, gebruikt voor het beheren van het project.
- `settings.py`: Het configuratiebestand van het project, waar je de database, statische bestanden, enz. kunt configureren.
- `urls.py`: De URL-routering configuratie van het project.
- `asgi.py` en `wsgi.py`: De interfaceconfiguratie voor implementatie.
## 3. De ontwikkelserver draaien
In de projectdirectory, gebruik de volgende opdracht om de ontwikkelserver van Django te starten:
```bash
python manage.py runserver
```
Als alles goed gaat, zou je de welkomstpagina van Django moeten kunnen zien in je browser op [http://127.0.0.1:8000/](http://127.0.0.1:8000/).
## 4. Maak je eerste applicatie
Een Django-project kan uit meerdere applicaties bestaan. Elke applicatie is verantwoordelijk voor specifieke functionele modules.
### Applicatie aanmaken
Voer de volgende opdracht uit in de `myproject` directory om een applicatie met de naam `myapp` aan te maken:
```bash
python manage.py startapp myapp
```
Dit maakt een nieuwe `myapp` directory aan in je projectdirectory, met een structuur die lijkt op:
```
myapp/
migrations/
__init__.py
admin.py
apps.py
models.py
tests.py
views.py
```
### Wijzig settings.py
In `settings.py` registreer je jouw applicatie. Zoek de lijst `INSTALLED_APPS` en voeg `'myapp',` toe:
```python
INSTALLED_APPS = [
...
'myapp',
]
```
## 5. Maak Weergaven en Sjablonen
Django volgt het MVC-model, waarbij weergaven en sjablonen elkaar aanvullen.
### Maak een Weergave
Definieer een eenvoudige weergave in `myapp/views.py`:
```python
from django.http import HttpResponse
def home(request):
return HttpResponse("Hello, Django!")
```
### Configureer URL's
Maak een bestand genaamd `urls.py` in de `myapp`-directory en stel de URL-routes in:
```python
from django.urls import path
from . import views
urlpatterns = [
path('', views.home, name='home'),
]
```
Importeer vervolgens de URL's van `myapp` in het `urls.py` bestand van het project:
```python
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('myapp.urls')),
]
```
## 6. Toegang tot jouw Pagina
Nu kun je de ontwikkelserver opnieuw starten en toegang krijgen tot [http://127.0.0.1:8000/](http://127.0.0.1:8000/). Je zou de boodschap "Hello, Django!" moeten zien.
## 7. Voeg Database Ondersteuning Toe
Django gebruikt standaard een SQLite-database, maar ondersteunt ook andere databases zoals MySQL en PostgreSQL. Hieronder staat hoe je SQLite kunt configureren.
### Database Instellingen
Zoek de sectie `DATABASES` in `settings.py`, de standaardconfiguratie ziet er als volgt uit:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / "db.sqlite3",
}
}
```
Je kunt dit aanpassen naar een andere database indien nodig. Bijvoorbeeld, gebruik PostgreSQL:
```python
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'yourdbname',
'USER': 'yourusername',
'PASSWORD': 'yourpassword',
'HOST': 'localhost',
'PORT': '5432',
}
}
```
Zorg ervoor dat je de juiste database-driver installeert, bijvoorbeeld voor PostgreSQL moet je `psycopg2` installeren.
```bash
pip install psycopg2
```
## 8. Maak Modellen en Migreer de Database
Laten we nu een eenvoudig model definiëren en dit naar de database migreren.
### Maak een Model
Voeg de volgende code toe in `myapp/models.py` om een eenvoudig model te definiëren:
Genereren Migratie
Voer het volgende commando uit om de database migratiebestanden te genereren:
python manage.py makemigrations
Pas vervolgens deze migraties toe:
python manage.py migrate
9. Maak Beheerder Interface
Django heeft een krachtige beheerder interface die het gemakkelijk maakt om gegevens te beheren.
Maak Superuser
Maak een beheerdersaccount aan met het volgende commando:
python manage.py createsuperuser
Voeg Model toe aan Beheerder Interface
Registreer je model in myapp/admin.py:
from django.contrib import admin
from .models import Item
admin.site.register(Item)
Start nu de ontwikkelserver opnieuw en ga naar http://127.0.0.1:8000/admin. Log in met de aangemaakte superuser en je zult het zojuist geregistreerde model kunnen zien.
Conclusie
Django is een krachtig webontwikkelingsframework dat je helpt om snel webapplicaties te bouwen. Met de methoden die in dit artikel worden beschreven, kun je eenvoudig een eenvoudige Django-website opzetten en de functionaliteit uitbreiden. Naarmate je dieper in Django duikt, kun je meer geavanceerde functies verkennen, zoals gebruikersauthenticatie, RESTful API's, testen, enzovoort. Hopelijk helpt deze inleidende gids je om de eerste stap te zetten en je Django-reis te beginnen!