<\/p>
Les expressions de modèle sont toutes incluses dans le délimiteur \"{{ }}\"?; les instructions de contr?le sont toutes incluses dans le délimiteur \"{% %}\"?; De plus, le modèle prend également en charge les commentaires, qui sont inclus dans le délimiteur \"{# #}\", et prend en charge les commentaires en bloc. Il existe généralement plusieurs types d'expressions?: <\/p> Les plus couramment utilisées sont les variables, qui sont transmises lors du rendu de Flask le modèle. , tel que \"name\" dans l'exemple ci-dessus <\/p><\/li> peut également être n'importe quel type Python de base, tel que la cha?ne {{ \"Bonjour\" }}, entre guillemets?; ou une valeur numérique, Liste, tuple, dictionnaire, booléen. Cela n'a aucun sens d'afficher directement le type de base. Généralement, l'opération <\/p><\/li> est utilisée avec d'autres expressions. Y compris les opérations arithmétiques, telles que {{ 2 3 }}?; les opérations de comparaison, telles que {{ 2 > 1 }}?; les opérations logiques, telles que {{ False et True }}<\/p><\/li> filtre \"|\" et testeur \"is\". Cela sera introduit plus tard <\/p><\/li> appels de fonction, tels que {{ current_time() }}?; opérations d'indice de tableau, telles que {{ arr[1] }}<\/p><\/li> Opérateur \"in\", tel que {{ 1 in [1,2,3] }}<\/p><\/li> Opérateur de concaténation de cha?nes \"~\", la fonction est la même comme en Python ” ” identique à {{ “Bonjour ” ~ name ~ “!” }}<\/p><\/li> mot-clé ? if ?, tel que {{ 'Salut, %s' % name if nom } }. Le ??si?? ici n’est pas une instruction de contr?le conditionnelle. <\/p><\/li><\/ul> Instructions de contr?le <\/strong><\/p> Les instructions de contr?le de Jinja2 sont principalement l'instruction de contr?le conditionnelle if et l'instruction de contr?le de boucle pour. Python. Nous pouvons modifier le code du modèle dans la section précédente?: <\/p> <\/p> <\/p> Ce qui précède est un exemple d'instruction de contr?le conditionnelle. Notez que l'instruction de contr?le if doit. utilisez \"{% endif %}\" pour terminer. Dans le modèle, vous ne pouvez pas compter sur l'indentation pour déterminer la fin du bloc de code comme vous le pouvez dans le code. Regardons à nouveau un exemple de boucle. Modifions d'abord la fonction \"hello\" dans le code Python et laissons-la transmettre deux listes dans le modèle. <\/p> <\/p> <\/p> Le modèle est le suivant?: <\/p> <\/p> <\/p> Identique à instruction if, l'instruction de contr?le for doit se terminer par \"{% endfor %}\". Sur la page, il y aura des espaces entre chaque élément. Si vous ne voulez pas d'espaces, ajoutez un signe \"-\" à la fin de l'instruction \"for\" et au début de l'instruction \"endfor\". Par exemple?: <\/p> <\/p> <\/p> Vous pouvez voir que le numéro \"12345\" est affiché ensemble. Regardons à nouveau un exemple de boucle complexe?: <\/p> <\/p> User List:<\/p>\r\n {% endif %}\r\n \r\n <\/p> Il y a trois points de connaissance ici. Tout d'abord, la boucle for prend en charge l'instruction else Lorsque la liste \"utilisateurs\" à parcourir est vide ou None, l'instruction else est saisie. <\/p>
Expression<\/strong><\/p>{% if name and name == 'admin' %}\r\n
This is admin console<\/h1>\r\n{% elif name %}\r\n
Welcome {{ name }}!<\/h1>\r\n{% else %}\r\n
Please login<\/h1>\r\n{% endif %}<\/pre>
def hello(name=None):\r\n return render_template('hello.html', name=name, digits=[1,2,3,4,5],\r\n users=[{'name':'John'},\r\n {'name':'Tom', 'hidden':True},\r\n {'name':'Lisa'}\r\n {'name':'Bob'}])<\/pre>
{% if name and name == 'admin' %}\r\n
Helle admin<\/h1>\r\n{% elif name %}\r\n
\"Hello\" ~ {{ name }} ~ \"!\"<\/h1>\r\n{% else %}\r\n
Hello World!<\/h1>\r\n{% endif %}\r\n \r\n {% for digit in digits %}\r\n {{ digit }}\r\n {% endfor %}<\/pre>
\r\n {% for digit in digits -%}\r\n {{ digit }}\r\n {%- endfor %}<\/pre>
\r\n {% for user in users if not user.hidden %}\r\n {% if loop.first %}\r\n
Deuxièmement, utilisez le mot-clé if après l'instruction for pour filtrer les éléments de la boucle. Dans cet exemple, tous les utilisateurs dont l'attribut masqué est True seront filtrés.
De plus, les variables de boucle intégrées de Jinja2 sont accessibles dans la boucle for. Dans cet exemple, nous afficherons le titre avant le premier élément, le nombre total après le dernier élément et le numéro de série de chaque élément. De plus, les éléments HTML p pour les éléments pairs et impairs auront des classes différentes. Si nous ajoutons le style CSS suivant, nous pouvons voir le passage piéton. <\/p>