Django est un framework de développement Web haut de gamme, écrit en Python, qui favorise un développement rapide et propre avec une conception pragmatique. L'une des fonctionnalités les plus puissantes de Django est le système de modèles. Le système de modèles de Django est un moyen de séparer le code HTML du code Python, ce qui permet de voir plus facilement ce qui se passe et de simplifier la conception des pages.
Pour démarrer avec les modèles de Django, vous devez comprendre comment Django trouve et charge les modèles. Par défaut, Django recherche les modèles dans un répertoire appelé « modèles » dans chaque application installée. Ainsi, si vous disposez d'une application appelée 'blog', Django recherchera des modèles dans le répertoire 'blog/templates'.
Pour utiliser un modèle dans une vue, vous devez d'abord charger le modèle à l'aide de la fonction 'get_template()' du module 'django.template.loader'. Cette fonction prend le nom du modèle comme argument et renvoie un objet modèle. Vous pouvez ensuite appeler la méthode 'render()' de cet objet modèle, en lui passant un contexte. Le contexte est un dictionnaire qui mappe les noms de variables à leurs valeurs.
Par exemple, si vous disposez d'un modèle appelé « blog/post_detail.html », vous pouvez charger et afficher ce modèle comme ceci :
depuis django.template.loader importer get_template
depuis django.http importer HttpResponse
def post_detail(requête, post_id) :
post = get_object_or_404(Post, pk=post_id)
modèle = get_template('blog/post_detail.html')
contexte = {'post': post}
return HttpResponse(template.render(context, request))
Ce code charge le modèle « blog/post_detail.html », crée un contexte qui contient la publication que nous souhaitons afficher, puis restitue le modèle avec ce contexte. Le résultat est une chaîne HTML qui est ensuite envoyée sous forme de réponse HTTP.
Les modèles Django utilisent leur propre langage, appelé langage de modèles Django. Ce langage comprend des balises, qui sont des instructions spéciales que vous pouvez utiliser pour ajouter de la logique à votre HTML. Par exemple, la balise « if » vous permet d'ajouter des conditions à votre modèle. Vous pouvez utiliser la balise 'if' pour afficher un contenu différent en fonction de la valeur d'une variable.
En plus des balises, le langage de modèles de Django inclut également des filtres, qui sont des fonctions que vous pouvez appliquer aux variables. Par exemple, le filtre « date » vous permet de formater les dates et les heures. Vous pouvez utiliser le filtre « date » pour afficher la date de publication d'un article dans le format de votre choix.
Les formulaires sont un autre élément crucial du développement Web avec Django. Django est livré avec une puissante bibliothèque de formulaires qui facilite la gestion du rendu des formulaires HTML et la validation des données du formulaire. Pour créer un formulaire avec Django, vous définissez une classe qui hérite de 'django.forms.Form' et définissez les champs du formulaire comme attributs de la classe. Chaque champ est une instance d'une classe de champ, telle que « CharField » pour les champs de texte ou « IntegerField » pour les entiers.
Par exemple, pour créer un formulaire de commentaire, vous pouvez définir la classe suivante :
à partir des formulaires d'importation Django
classe CommentForm(forms.Form):
nom = form.CharField(max_length=100)
commentaire = form.CharField(widget=forms.Textarea)
Cette classe définit un formulaire avec deux champs, « nom » et « commentaire ». Le champ « Nom » est un champ de texte qui accepte jusqu'à 100 caractères. Le champ 'commentaire' est une zone de texte, comme indiqué par le widget 'Textarea'.
Pour afficher ce formulaire dans un modèle, vous pouvez simplement le transmettre au contexte et l'utiliser dans une balise HTML 'form'. Django se chargera du rendu des champs et de la génération des balises HTML 'input' appropriées.
Par exemple, vous pouvez afficher le formulaire de commentaire comme ceci :
<form method="post">
{{ comment_form.as_p }}
<input type="soumettre" value="Soumettre">
</formulaire>
Ce code restitue le formulaire de commentaire sous la forme d'une série de paragraphes, chacun contenant un champ de formulaire. La méthode 'as_p' de l'objet formulaire génère le HTML pour chaque champ, y compris les balises 'label' et 'input' et tous les messages d'erreur.
En résumé, Django fournit une infrastructure puissante pour gérer les modèles et les formulaires, facilitant la création d'applications Web robustes et maintenables.