API permettant de consulter les données enregistrées pour les systèmes installés et configurés. Les techniciens peuvent enregistrer les systèmes avant de les mettre en service. Gestion différenciée des utilisateurs.
Disclaimer : Adaptation d'un projet réel. Toutes les informations sensibls ont été retirées ou anonymisées. Il peut en résulter des erreurs. Ne pas utiliser tel quel, et envoyez un feedback en cas de problème.
La BDD et l'API sont dans des containers Docker gérés par un fichier compose.yaml. BDD -> container "db" API -> container "api"
Technologies Django PostgreSQL Django Signals JWT Django permissions Docker
-
Depuis le dossier contant docker-compose : lancer le container 'web' avec
exec
et lancer une invite de commande pour accéder à une console dans le container :
docker exec -it <nom_du_container> bash
-
Lancer la commande de création du superutilisateur
python manage.py createsuperuser
-
Répondre aux questions : Username Email Password Password again
On peut bypasser la solidité du pass du superutilisateur, mais pas ceux des utilisateurs lambda (à configurer si besoin).
- Pour se connecter en tant que superutilisateur, ouvrir le navigateur à l'adresse :
localhost:<port>/admin
Dans l'interface admin http://localhost:8000/admin/
ajouter 2 groupes :
- owner_group pour les clients,
- sys_group pour les Systèmes
Le fichier de fixtures :
dashboard/fixtures/fixture_data.json
Pour le lancer depuis la console :
python manage.py loaddata dashboard/fixtures/fixture_data.json
- Eviter d'utiliser le mot "date" ou "Date", c'est un terme réservé (la plupart du temps ça n'a pas l'air de poser de problème)
A la création :
- Uniquement dans le moldèle :
created_at = models.DateTimeField(auto_now_add = True)
A l'update :
updated_at = models.DateTimeField(auto_now = True)
- Dans le container, via la console (l'invite de commande commence par '#') :
python manage.py makemigrations
python manage.py migrate
Chaque commande indique le résultat.
-
Emplacement du fichier de test :
api/bei/tests.py
-
Lancer les tests :
python manage.py test bei.tests -v 3
Régler la quantité de détails avec-v
:3
= le maximum
-
Une fois dans le container, ouvrir une console python :
python manage.py shell
-
Taper le code pour créer l'utilisateur :
from django.contrib.auth.models import User
from django.contrib.auth.hashers import make_password
user = User.objects.create_user('<username>','<mail>')
user.password = make_password('<password>')
user.save()
-
Vérifier dans l'itf web qu'il est bien créé.