L’architecture MVT – Modèle View Template

L’architecture MVT – Modèle View Template

par | Oct 27, 2021 | Développement, Django, Tutoriels | 0 commentaires

Le MVT en théorie

Le MVT représente une architecture orientée autour de trois pôles :

  • Le modèle.
  • La vue.
  • Le template.

Elle s’inspire de l’architecture MVC, très répandue dans les Frameworks web. Son objectif est de séparer les responsabilités de chaque pôle afin que chacun se concentre sur ses tâches.

Modèle

Le modèle interagit avec la base de données. Sa mission est de chercher dans une base de donnée les items correspondant à une requête et de renvoyer une réponse facilement exploitable par le programme.

les modèles s’appuient sur le mapping objet relationnel communément appeler ORM.

La consultation d’une base de données relationnelle se réaliser par un langage appelé SQL (Structured Query Language). Sa syntaxe est très différents de Python ! Par exemple, la requête suivante renverra tous les enregistrements dans la table ‘etudiant’

1 SELECT * FROM etudiant

Ceux-ci seront dans un format que vous devrez alors interpréter manuellement avant de pouvoir l’utiliser dans votre programme. Il s’agit d’une étape assez fastidieuse qui n’est pas nécessaire.

Un ORM traduit les résultats d’une requête SQL en objets Python avec lesquels vous pouvez interagir. De même, il permet d’écrire une requête SQL en Python.

Par exemple, la requête suivante renverra tous les items de la table ‘etudiant : 

Content.objects.all()

Dans un projet Django, chaque application contient un document models.py qui réunit les différents modèles utilisés.

Template

Un template est un fichier HTML qui peut recevoir des objets Python et qui est lié à une vue (nous y reviendrons). Il est placé dans le dossier templates.

Un template peut interpréter des variables et les afficher. Exemple, nous pouvons « donner » la variable x="Bonjour" au template index.html et ce dernier l’affichera à la place de la variable.

Vue

Concrètement, une vue reçoit une requête HTTP qui peut ressembler à celle-ci :


HEAD /search?query=vert+trèfles+velours HTTP/1.1
Host: chapelier-fou.com
User-Agent: curl/7.54.0
Accept: */*

Elle renvoie une réponse HTTP semblable à la suivante :


HTTP/1.1 200 OK
Date: Tue, 01 Aug 2017 14:36:27 GMT
Server: WSGIServer/0.2 CPython/3.6.2
Content-Type: text/html
X-Frame-Options: SAMEORIGIN
Content-Length: 11702



...

La vue réalise également toutes les actions nécessaires pour répondre à la requête :

  • si une interaction avec la base de données est requise, la vue appelle un modèle et récupère les objets renvoyés par ce dernier.
  • si un gabarit est nécessaire, la vue l’appelle.

Dans un projet Django, les vues de chaque application sont regroupées dans le document views.py.

Chaque vue est associée à une url. Par exemple, l’url de la requête HTTP précédente est la suivante :


http://nomdomaine.tld/search?query=s1+s2+s3

Les urls d’un projet sont regroupées dans le fichier urls.py

Conclusion

Durant ce tutoriel nous avons abordé la notion de MVT qui s’inspire du modèle MVC, cela vous aidera à comprendre le reste dans tuto et gagner en confiance lors de vos développements.

0 commentaires

Soumettre un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *