Files
gauvainboiche 0d071d2843 Semaine 11
2026-07-11 21:38:00 +02:00

147 lines
4.5 KiB
Markdown

# Exo 4.1 "Projet Django" - BOICHÉ Gauvain
Je déclare n'avoir pas utilisé l'IA sur ce projet au profit de la [documentation du cours](https://github.com/Laudroid/Live-Python-Web/blob/main/4-1-5-Cr%C3%A9ation-de-pages-web-simples-et-ge.md) et [celle de Django](https://docs.djangoproject.com/fr/3.1/ref/contrib/auth/).
# Exo 4.2 "Lister des équipements" - BOICHÉ Gauvain
Je déclare avoir utilisé l'IA dans ces cadres :
## Raison 1
Génération de "list.html"
### Pourquoi ?
Je n'aime pas l'HTML.
### Ce que j'en ai retenu
Tout le contenu donné semble correct.
## Raison 2
Pour déboguer la raison pour laquelle mon fichier "list.html" n'était pas trouvé par le projet.
### Ce que l'IA m'a répondu
> The template parc/list.html exists at templates/parc/list.html, but Django's app_directories loader is searching inside each app's own templates/ folder — not the project-level one.
> Fix: declare the project-level templates directory in TEMPLATES settings.
### Ce que j'ai rajouté
De :
```
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
```
à :
```
TEMPLATES = [
{
"BACKEND": "django.template.backends.django.DjangoTemplates",
"DIRS": [BASE_DIR / "templates"],
"APP_DIRS": True,
"OPTIONS": {
"context_processors": [
"django.template.context_processors.request",
"django.contrib.auth.context_processors.auth",
"django.contrib.messages.context_processors.messages",
],
},
},
]
```
### Conséquences
Ca ne marchait toujours pas, et l'IA m'a mis sur une piste à la noix qui n'est pas évidente : j'ai réorganisé un peu mon arborescence, et dans `settings.py` je devais faire ça :
```
# BASE_DIR = Path(__file__).resolve().parent.parent # old
BASE_DIR = Path(__file__).resolve().parent.parent.parent # new: 4_1/
```
# Exo 5.1 "Exiger Auth" - BOICHÉ Gauvain
Je déclare n'avoir pas usé d'IA au profit [de la documentation officielle](https://www.django-rest-framework.org/api-guide/authentication/#tokenauthentication).
Par contre je déclare l'avoir utilisé hier soir pour mettre tout d'a-plomb pour faire marcher l'application, en générant les patrons HTML notamment.
# Exo 5.2 "Cloisonner" - BOICHÉ Gauvain
J'allais l'utiliser, mais j'ai décidé de relire le cours pour `perform_create`. Des fois je pense que tout est trop compliqué.
# Exo 5.3 "Propiétés sensibles"
Je n'ai pas utilisé d'IA... en fait j'avais déjà fait ça :
```
from rest_framework import serializers
from .models import Equipment
class EquipmentSerializer(serializers.ModelSerializer):
class Meta:
model = Equipment
fields = ["id", "hostname", "ip", "is_active"]
# fields = ["id", "hostname", "description", "date_ajout", "is_active"]
```
Pris d'un cours précédent. Sécurité béton accidentelle.
### Si, j'en ai usé : Raison 1
Je voulais un script qui génère des utilisateurs, les jetons et tout directement après un gros HARD-RESET du projet (restructuration des dossiers)
### Raison 2
En voulant créer, depuis le compte "Bob" un équipement avec "owner": "Alice", j'obtiens malgré tout une réponse 201. Maintenant, la sécurité "marche" en soit parce que le "owner" passe à "Bob". Autant il ne peut PAS créer de réponse en tant qu'Alice, autant... et bien ce n'est pas ce que j'ai demandé.
J'ai passé l'info à une IA et elle a voulu tout ré-écrire pour... permettre à Bob de le faire pour Alice. J'ai reprécisé 4 fois le périmètre, pas moyen de lui faire comprendre.
J'ai fini par lui insulter ses grands morts et j'ai laissé comme ça.
# Eco 5.4 "Limiter conso"
Pas d'IA.
# Exo 5.5 "Durcir config"
## Raison 1
Usage pour bien définir les CORS et les hôtes.
### Avant
ALLOWED_HOSTS = ["127.0.0.1", "http://127.0.0.1", "localhost"]
CORS_ALLOWED_ORIGINS = ["127.0.0.1", "http://127.0.0.1", "localhost"]
### Après
```
ALLOWED_HOSTS = ["127.0.0.1", "localhost"]
CORS_ALLOWED_ORIGINS = ["http://127.0.0.1:8000", "http://localhost:8000"]
```
## Raison 2
Pour la journalisation, parce que c'était chaud comme bloc.
# Exo 5.6
Pas eu le temps.