Het configureren van het `settings.py`-bestand voor productie-implementatie in Django, een populaire Python-webkader, omvat verschillende stappen. Het belangrijkste doel is de beveiliging en prestaties van uw applicatie te optimaliseren.
1. Geheimen buiten houden van broncode:
Bewaar gevoelige gegevens zoals geheime sleutels, databasewachtwoorden, en andere geheime gegevens op een veilige plaats. Django-environ is een nuttige tool om de configuratie vanuit de omgeving en .env-bestanden te beheren. Installeer het met pip:
```
pip install django-environ
```
In uw `settings.py`, kunt u het dan op de volgende manier gebruiken (Bron: Django-environ Github) :
```
env = environ.Env()
SECRET_KEY = env(‘DJANGO_SECRET_KEY’)
DATABASES = {
‘default’: env.db(), # Hiermee wordt de DATABASE_URL-omgevingsvariabele gebruikt
}
```
1. Debugmodus uitschakelen:
Zet DEBUG op False. Hiermee voorkomt u het lekken van gevoelige informatie door fouten op productieservers.
1. Stel toegestane hosts in:
Definieer `ALLOWED_HOSTS` om de hostnamen te specificeren die kunnen worden bediend door uw Django-toepassing.
1. Definiëren van de Statische Bestanden en Media Bestanden:
`STATIC_URL`, `STATIC_ROOT`, `MEDIA_URL` en `MEDIA_ROOT` moeten adequaat worden gedefinieerd in `settings.py`.
1. Definieer veiligheidsconfiguraties:
Zet `SECURE_SSL_REDIRECT`, `SESSION_COOKIE_SECURE`, `CSRF_COOKIE_SECURE` op True om HTTPS-omleidingen, veilige cookies, enzovoort in te schakelen.
Hier is een voorbeeld van een `settings.py`-bestand na het toepassen van bovenstaande aanbevelingen:
```
import os
import environ
env = environ.Env()
environ.Env.read_env()
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
SECRET_KEY = env(‘DJANGO_SECRET_KEY’)
DEBUG = False
ALLOWED_HOSTS = [‘example.com’, ‘www.example.com’]
DATABASES = {
‘default’: env.db(),
}
STATIC_URL = ‘/static/‘
STATIC_ROOT = os.path.join(BASE_DIR, ‘static’)
MEDIA_URL = ‘/media/‘
MEDIA_ROOT = os.path.join(BASE_DIR, ‘media’)
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
```
Bronnen waarnaar verwezen kan worden voor meer informatie:
- De officiële Django-documentatie, in het bijzonder de “Deployment Checklist” onder “Hoe richt ik Django in” (https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/).
- De repository van Django-environ op Github (https://github.com/joke2k/django-environ).