Maison > Article > développement back-end > Une plongée approfondie dans le moteur de modèles de Django et Jinja2 de Flask
Compréhension approfondie du moteur de modèles de Django et de Jinja2 de Flask, des exemples de code spécifiques sont requis
Introduction :
Django et Flask sont deux frameworks Web couramment utilisés et populaires en Python. Ils fournissent tous deux de puissants moteurs de modèles pour gérer le rendu des pages Web dynamiques. Django utilise son propre moteur de modèles, tandis que Flask utilise Jinja2. Cet article examinera en profondeur le moteur de modèles de Django et Jinja2 de Flask, et fournira quelques exemples de code concrets pour illustrer leur utilisation et leurs différences.
1. Moteur de modèles Django
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1>Hello, {{ name }}!</h1> </body> </html>
Dans la fonction d'affichage, nous pouvons transmettre les données au modèle et les restituer en utilisant le render
fonction . Par exemple, nous pouvons transmettre une variable nommée « nom » au modèle : render
函数将数据传递给模板并进行渲染。例如,我们可以传递一个名为“name”的变量给模板:
from django.shortcuts import render def hello(request): name = "John" return render(request, 'hello.html', {'name': name})
{{ name }}
。{% for item in items %} {% endfor %}
。{{ name|title }}
表示将name变量转换为首字母大写的形式。<!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> {% block header %}{% endblock %} </header> <div class="content"> {% block content %}{% endblock %} </div> <footer> {% block footer %}{% endblock %} </footer> </body> </html>
然后,在其他模板中可以使用extends
关键字来继承并扩展基础模板,如下所示:
{% extends 'base.html' %} {% block title %}Hello{% endblock %} {% block header %} <h1>Welcome to my website!</h1> {% endblock %} {% block content %} <p>Hello, {{ name }}!</p> {% endblock %}
二、Flask的Jinja2
<!DOCTYPE html> <html> <head> <title>Hello</title> </head> <body> <h1>Hello, {{ name }}!</h1> </body> </html>
在视图函数中,可以使用render_template
函数来渲染模板并传递数据。例如,我们可以传递一个名为“name”的变量给模板:
from flask import Flask, render_template app = Flask(__name__) @app.route('/') def hello(): name = "John" return render_template('hello.html', name=name)
{{ name }}
。{% for item in items %} {% endfor %}
。{{ name|title }}
表示将name变量转换为首字母大写的形式。<!DOCTYPE html> <html> <head> <title>{% block title %}{% endblock %}</title> </head> <body> <header> {% block header %}{% endblock %} </header> <div class="content"> {% block content %}{% endblock %} </div> <footer> {% block footer %}{% endblock %} </footer> </body> </html>
然后,在其他模板中使用extends
{% extends 'base.html' %} {% block title %}Hello{% endblock %} {% block header %} <h1>Welcome to my website!</h1> {% endblock %} {% block content %} <p>Hello, {{ name }}!</p> {% endblock %}
Le moteur de modèle de Django fournit une syntaxe riche pour gérer la logique et la présentation des données. Voici quelques exemples courants de syntaxe de modèle :
Variables : utilisez des doubles accolades pour entourer les noms de variables, tels que {{ name }}
.
{% for item in items %} {% endfor %}
. 🎜🎜Filtre : vous pouvez utiliser des symboles de barre verticale et des filtres après les variables pour traiter la sortie des variables. Par exemple, {{ name|title }>
signifie convertir le nom de la variable en une forme en majuscule. 🎜extends
peut être utilisé dans d'autres modèles pour hériter et étendre le modèle de base, comme montré ci-dessous : 🎜rrreee🎜2. Création et utilisation du modèle Jinja2🎜🎜🎜de Flask🎜Semblable à Django, Flask utilise Jinja2 comme moteur de modèle. De même, des modèles peuvent être créés en créant un fichier HTML. 🎜Dans Flask, les fichiers modèles sont généralement stockés dans le répertoire "templates" de l'application. 🎜Par exemple, nous pouvons créer un modèle appelé "hello.html" comme indiqué ci-dessous : 🎜🎜rrreee🎜Dans la fonction d'affichage, vous pouvez utiliser la fonction render_template
pour restituer le modèle et transmettre les données. Par exemple, nous pouvons passer une variable nommée "name" au modèle : 🎜rrreee{{ name }}
. 🎜🎜Structures de contrôle : utilisez des accolades et des signes de pourcentage pour inclure des structures de contrôle, telles que {% for item in items %} {% endfor %}
. 🎜🎜Filtre : vous pouvez également utiliser des symboles de barre verticale et des filtres après les variables pour traiter la sortie des variables. Par exemple, {{ name|title }>
signifie convertir le nom de la variable pour mettre la première lettre en majuscule. 🎜extends
dans d'autres modèles pour hériter et étendre le modèle de base, comme indiqué ci-dessous : 🎜rrreee🎜 Conclusion : 🎜 Le moteur de modèles de Django et Jinja2 de Flask offrent des fonctionnalités puissantes pour créer des rendus de pages Web dynamiques. Il existe de légères différences de syntaxe et d’utilisation entre les deux, mais dans l’ensemble, elles sont très similaires. Dans le développement réel, vous pouvez choisir d'utiliser l'un d'entre eux en fonction de vos préférences personnelles ou des besoins du projet. 🎜🎜Ce qui précède est une compréhension approfondie du moteur de modèles de Django et de Jinja2 de Flask. Grâce à des exemples de code spécifiques, nous avons une compréhension plus claire de leur utilisation et de leurs différences. J'espère que cet article vous aidera à comprendre et à utiliser ces deux moteurs de modèles. 🎜Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!