GET /
: la partie visuelle du frontend n'utilise que cet endpointGET /<id:string>
: redirections des url raccourciesPOST /api/token
: permet d'obtenir un cookie de connexionPOST /api/register
: permet d'enregister un nouvel utilisateurGET /api/mylinks
: permet d'obtenir la liste des liens créés par l'utilisateur connectéGET /api/links
: permet d'obtenir la liste de tous les liens (uniquement utilisable par "admin")POST /api/create
: permet l'ajout d'une nouvelle url raccourcieGET /api/<id:string>
: permet d'obtenir le lien lié à une url raccourcie
- Affichage d'index.html
- public/templates/public/index.html
<!DOCTYPE html> <html> <head> <title>Acceuil - Projet</title> </head> <body> <h1>Bienvenue sur l'acceuil de mon super projet :)</h1> </body> </html>
- public/views.py
from django.shortcuts import render def index(request): return render(request, 'public/index.html')
- public/urls.py -> urls de l'app public
from django.urls import path import views urlpatterns = [ path('', views.index, name='index'), ]
- projet/urls.py -> urls du projet complet
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('public.urls')), ]
- public/templates/public/index.html
- Configuration de la BDD
Pour configurer la base de données, on utilise la variableDATABASES = []
de projet/settings.py - Fichiers de paramètres
- projet/settings.py : ce fichier permet de configurer les paramètres d'exécution de django, il est possible d'utilise un fichier différent grâce à la variable d'environement
DJANGO_SETTINGS_MODULE
- projet/{a,w}sgi.py : ce(s) fichier(s) permetent de définir les paramètres appliqués au serveur web (ex: Gunicorn) lors d'un déploiement en prodution
- projet/settings.py : ce fichier permet de configurer les paramètres d'exécution de django, il est possible d'utilise un fichier différent grâce à la variable d'environement
- Migrations BDD
python manage.py makemigrations
: cette commande génère les fichiers de migration (modification) de la base de données à partir des modèles définis dans models.py et les stockes dans public/migrations/python manage.py migrate
: cette commande applique les migrations à la base de données à partir des migrations dans public/migrations/
- Syntaxe Dockerfile
FROM
: spécifie l'image sur laquelle on se baseRUN
: exécute une commande pendant le buildWORKDIR
: spécifie le répertoire de travail (cwd)EXPOSE
: spécifie un port à rendre accessible depuis l'hôteCMD
: spécifie la commande de démmarage du conteneur
- Syntaxe docker-compose.yml
-
ports: -> liste des ports du conteneur à rendre disponible sur l'hôte - "80:80" -> host:ct = on affecte le port 80 de l'hôte au port 80 du conteneur
-
build: -> spécifie que l'on utilise va utiliser une image locale que l'on va build context: . -> spécifie le dossier utilisé pour build l'image dockerfile: Dockerfile.api -> spécifie le Dockerfile utilisé par l'image
-
depends_on: -> liste les conteneurs devant démarrer avant le conteneur actuel - web - api
-
environment: -> spécifie la liste des variables d'environement à passer au conteneur pour l'exécution POSTGRES_DB: ${POSTGRES_DB} POSTGRES_USER: ${POSTGRES_USER} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
-
- Pour définir une variable d'environement dans un conteneur on peut utiliser :
- la section
environement:
dans le docker-compose.yml - l'option
-e
avec docker run - l'instruction
ENVIRONEMENT
dans le Dockerfile
- la section
- On peut utiliser le nom du conteneur web dans la configuration du conteneur nginx grâce à la résolution interne des noms réalisée par docker pour les conteneurs d'un même réseau