Architecture de type classique: architecture MVC
Modèle MVC: Modèle Vue Contrôleur

Django:
Url dispatcher: Inspects the request to invoke the appropriate response
View: Combines components to construct a response
Model: Fetches data from the database
Template: Returns an HTML page with holes to be filled with data

Une vue en Django, c’est une fonction qui reçoit une requête et qui renvoit une réponse (elle prend du HTML avec des trous et des données, les mixent et voilà)

Installer Django -> utiliser pipenv install django
Installer un paquet sur la machine et non dans un env -> pip install --user

Commandes Django:
django-admin startproject <name_project> .
manage.py: Super makefile, besoin d’une commande, c’est dans manage.py
urls.py: Table des matières des urls
Un projet c’est un sac d’applications
settings.py: Inclure les apps
Créer un fichier urls.py dans les dossiers des apps
Pour manipuler le SQL en python, on peut utiliser un ORM

from django.db import models
class Prof(models.Model):
    name = models.CharField(max_length=200)
    
class Student(models.Model):
    name = models.CharField(max_length=200)
    prof = models.ForeignKey(Prof, on_delete=models.CASCADE)

makemigrations: comme commit (faire un snapshot -> faire une migration)
migrate: regarde les migrations et les applique

driver chrome en headless