Qu'est-ce que Django ?
Django est l’un des frameworks web les plus populaires pour le développement d’applications web en Python. Il est connu pour sa communauté active, sa rapidité, sa sécurité et sa productivité. L’une des forces de Django repose sur son architecture MVT (Model-View-Template), qui simplifie le développement tout en assurant une séparation claire des responsabilités. Dans cet article, nous explorerons cette architecture et son fonctionnement.
Qu’est-ce que l’architecture MVT ?
L’architecture MVT (Model-View-Template) est un modèle de conception utilisé dans Django. Elle se compose de trois parties principales :
-
Model : Gère les données et les interactions avec la base de données.
-
View : Gère la logique métier et les fonctionnalités des applications.
-
Template : S’occupe de l’affichage des données à l’utilisateur final.
Les composantes de l’architecture MVT
1. Model (Modèle)
Le modèle est la partie qui définit la structure des données. Dans Django, les modèles sont des classes Python qui correspondent à des tables dans la base de données. Grâce à l’ORM (Object-Relational Mapping) de Django, ces modèles interagissent facilement avec le système de gestion de bases de données (SGBD).
Voici un exemple de modèle simple :
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=50)
content = models.TextField()
def __str__(self):
return self.title
La classe Article définit un modèle pour un article avec deux champs : un titre et un contenu. Django génère automatiquement une table dans la base de données basée sur cette classe, grâce à ORM.
2. View (Vue)
Les vues sont responsables de la logique métier et des fonctionnalités. Elles traitent les requêtes HTTP, interagissent avec les modèles pour récupérer ou manipuler des données, et renvoient une réponse, souvent sous forme de pages HTML.
Voici un exemple de vue Django :
from django.shortcuts import render
from .models import Article
def article_list(request):
articles = Article.objects.all()
return render(request, 'articles/list.html', {'articles': articles})
Dans cet exemple, la vue article_list récupère tous les articles de la base de données et les transmet au template list.html pour l’affichage.
3. Template
Le template est la partie chargée d’afficher le contenu généré par une vue. Les templates sont des fichiers HTML qui utilisent le moteur de template de Django pour intégrer dynamiquement des données.
Voici un exemple de template simple :
<!DOCTYPE html>
<html>
<head>
<title>Liste des Articles</title>
</head>
<body>
<h1>Articles</h1>
<ul>
{% for article in articles %}
<li>{{ article.title }} - {{ article. content }}</li>
{% endfor %}
</ul>
</body>
</html>
Dans ce template, les balises spécifiques à Django ({% %} et {{ }}) permettent d’itérer sur la liste des articles et d’afficher leurs titres et content. Ces balises font partie du langage de templates de Django.