模板语法之标签

语法

{% 开始标签 %}
....

{% 结束标签%}

if标签

例:{% if ... %}
{% elif %}
{% else %}
{% endif %}
if&#x8BED;&#x53E5;&#x652F;&#x6301; and &#x3001;or&#x3001;==&#x3001;>&#x3001;<、!=、<=、>=&#x3001;in&#x3001;not in&#x3001;is&#x3001;is not&#x5224;&#x65AD;&#x3002;
</、!=、<=、>

for标签

for &#x6807;&#x7B7E;&#x5E26;&#x6709;&#x4E00;&#x4E2A;&#x53EF;&#x9009;&#x7684;{% empty %} &#x4ECE;&#x53E5;&#xFF0C;&#x4EE5;&#x4FBF;&#x5728;&#x7ED9;&#x51FA;&#x7684;&#x7EC4;&#x662F;&#x7A7A;&#x7684;&#x6216;&#x8005;&#x6CA1;&#x6709;&#x88AB;&#x627E;&#x5230;&#x65F6;&#xFF0C;&#x53EF;&#x4EE5;&#x6709;&#x6240;&#x64CD;&#x4F5C;&#x3002;
{% for person in person_list %}
{{ person.name }}
{% empty %}
sorry,no person here
{% endfor %}
&#x6CE8;&#xFF1A;&#x5FAA;&#x73AF;&#x5E8F;&#x53F7;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;&#xFF5B;&#xFF5B;forloop&#xFF5D;&#xFF5D;&#x663E;&#x793A;
&#x200B;forloop.counter            &#x5F53;&#x524D;&#x5FAA;&#x73AF;&#x7684;&#x7D22;&#x5F15;&#x503C;&#xFF08;&#x4ECE;1&#x5F00;&#x59CB;&#xFF09;
forloop.counter0          &#x5F53;&#x524D;&#x5FAA;&#x73AF;&#x7684;&#x7D22;&#x5F15;&#x503C;&#xFF08;&#x4ECE;0&#x5F00;&#x59CB;&#xFF09;
forloop.revcounter       &#x5F53;&#x524D;&#x5FAA;&#x73AF;&#x7684;&#x5012;&#x5E8F;&#x7D22;&#x5F15;&#x503C;&#xFF08;&#x4ECE;1&#x5F00;&#x59CB;&#xFF09;
forloop.revcounter0    &#x5F53;&#x524D;&#x5FAA;&#x73AF;&#x7684;&#x5012;&#x5E8F;&#x7D22;&#x5F15;&#x503C;&#xFF08;&#x4ECE;0&#x5F00;&#x59CB;&#xFF09;
forloop.first              &#x5F53;&#x524D;&#x5FAA;&#x73AF;&#x662F;&#x4E0D;&#x662F;&#x7B2C;&#x4E00;&#x6B21;&#x5FAA;&#x73AF;&#xFF08;&#x5E03;&#x5C14;&#x503C;&#xFF09;
forloop.last              &#x5F53;&#x524D;&#x5FAA;&#x73AF;&#x662F;&#x4E0D;&#x662F;&#x6700;&#x540E;&#x4E00;&#x6B21;&#x5FAA;&#x73AF;&#xFF08;&#x5E03;&#x5C14;&#x503C;&#xFF09;
forloop.parentloop         &#x672C;&#x5C42;&#x5FAA;&#x73AF;&#x7684;&#x5916;&#x5C42;&#x5FAA;&#x73AF;

with标签

with&#x8D77;&#x522B;&#x540D;
{% with d.hobby.3.info as nb  %}
<p>{{ nb }}</p>
    &#x5728;with&#x8BED;&#x6CD5;&#x5185;&#x5C31;&#x53EF;&#x4EE5;&#x901A;&#x8FC7;as&#x540E;&#x9762;&#x7684;&#x522B;&#x540D;&#x5FEB;&#x901F;&#x7684;&#x4F7F;&#x7528;&#x5230;&#x524D;&#x9762;&#x975E;&#x5E38;&#x590D;&#x6742;&#x83B7;&#x53D6;&#x6570;&#x636E;&#x7684;&#x65B9;&#x5F0F;
{% endwith %}

自定义过滤器、标签、inclusion_tag

&#x5148;&#x4E09;&#x6B65;&#x8D70;
  1.&#x5728;&#x5E94;&#x7528;&#x4E0B;&#x521B;&#x5EFA;&#x4E00;&#x4E2A;&#x540D;&#x5B57;&#x201D;&#x5FC5;&#x987B;&#x201C;&#x53EB;templatetags&#x6587;&#x4EF6;&#x5939;
  2.&#x5728;&#x8BE5;&#x6587;&#x4EF6;&#x5939;&#x5185;&#x521B;&#x5EFA;&#x201C;&#x4EFB;&#x610F;&#x201D;&#x540D;&#x79F0;&#x7684;py&#x6587;&#x4EF6; eg:mytag.py
  3.&#x5728;&#x8BE5;py&#x6587;&#x4EF6;&#x5185;"&#x5FC5;&#x987B;"&#x5148;&#x4E66;&#x5199;&#x4E0B;&#x9762;&#x4E24;&#x53E5;&#x8BDD;(&#x5355;&#x8BCD;&#x4E00;&#x4E2A;&#x90FD;&#x4E0D;&#x80FD;&#x9519;)
    from django import template
    register = template.Library()
4.&#x7136;&#x540E;&#x5728;&#x518D;&#x5176;&#x4E2D;&#x8F93;&#x5165;&#x9700;&#x8981;&#x81EA;&#x5B9A;&#x4E49;&#x7684;&#x4E1C;&#x897F;&#xFF0C;&#x5982;&#x4E0B;&#xFF1A;
"""
&#x81EA;&#x5B9A;&#x4E49;&#x8FC7;&#x6EE4;&#x5668;
@register.filter(name='baby')
def my_sum(v1, v2):
return v1 + v2
&#x4F7F;&#x7528;
{% load mytag %} #&#x6A21;&#x677F;&#x5C42;&#x52A0;&#x8F7D;mytag&#x6587;&#x4EF6;
<p>{{ n|baby:666 }}</p>

&#x81EA;&#x5B9A;&#x4E49;&#x6807;&#x7B7E;(&#x53C2;&#x6570;&#x53EF;&#x4EE5;&#x6709;&#x591A;&#x4E2A;)      &#x7C7B;&#x4F3C;&#x4E8E;&#x81EA;&#x5B9A;&#x4E49;&#x51FD;&#x6570;
@register.simple_tag(name='plus')
def index(a,b,c,d):
return '%s-%s-%s-%s'%(a,b,c,d)
&#x4F7F;&#x7528;
&#x6807;&#x7B7E;&#x591A;&#x4E2A;&#x53C2;&#x6570;&#x5F7C;&#x6B64;&#x4E4B;&#x95F4;&#x7A7A;&#x683C;&#x9694;&#x5F00;
<p>{% plus 'jason' 123 123 123 %}</p>

&#x81EA;&#x5B9A;&#x4E49;inclusion_tag
"""
&#x5185;&#x90E8;&#x539F;&#x7406;
  &#x5148;&#x5B9A;&#x4E49;&#x4E00;&#x4E2A;&#x65B9;&#x6CD5;
  &#x5728;&#x9875;&#x9762;&#x4E0A;&#x8C03;&#x7528;&#x8BE5;&#x65B9;&#x6CD5; &#x5E76;&#x4E14;&#x53EF;&#x4EE5;&#x4F20;&#x503C;
  &#x8BE5;&#x65B9;&#x6CD5;&#x4F1A;&#x751F;&#x6210;&#x4E00;&#x4E9B;&#x6570;&#x636E;&#x7136;&#x540E;&#x4F20;&#x9012;&#x7ED9;&#x4E00;&#x4E2A;html&#x9875;&#x9762;
  &#x4E4B;&#x540E;&#x5C06;&#x6E32;&#x67D3;&#x597D;&#x7684;&#x7ED3;&#x679C;&#x653E;&#x5230;&#x8C03;&#x7528;&#x7684;&#x4F4D;&#x7F6E;
"""
@register.inclusion_tag('left_menu.html')
def left(n):
    data = ['&#x7B2C;{}&#x9879;'.format(i) for i in range(n)]
&#x7B2C;&#x4E00;&#x79CD;
return {'data':data}  # &#x5C06;data&#x4F20;&#x9012;&#x7ED9;left_menu.html
&#x7B2C;&#x4E8C;&#x79CD;
return locals()  # &#x5C06;data&#x4F20;&#x9012;&#x7ED9;left_menu.html
{% left 5 %}
&#x603B;&#x7ED3;:&#x5F53;html&#x9875;&#x9762;&#x67D0;&#x4E00;&#x4E2A;&#x5730;&#x65B9;&#x7684;&#x9875;&#x9762;&#x9700;&#x8981;&#x4F20;&#x53C2;&#x6570;&#x624D;&#x80FD;&#x591F;&#x52A8;&#x6001;&#x7684;&#x6E32;&#x67D3;&#x51FA;&#x6765;&#xFF0C;&#x5E76;&#x4E14;&#x5728;&#x591A;&#x4E2A;&#x9875;&#x9762;&#x4E0A;&#x90FD;&#x9700;&#x8981;&#x4F7F;&#x7528;&#x5230;&#x8BE5;&#x5C40;&#x90E8; &#x90A3;&#x4E48;&#x5C31;&#x8003;&#x8651;&#x5C06;&#x8BE5;&#x5C40;&#x90E8;&#x9875;&#x9762;&#x505A;&#x6210;inclusion_tag&#x5F62;&#x5F0F;
(&#x5728;&#x8BB2;bbs&#x7684;&#x65F6;&#x5019;&#x4F1A;&#x4F7F;&#x7528;&#x5230;)

Original: https://www.cnblogs.com/suncolor/p/16664831.html
Author: 等日落
Title: 模板语法之标签

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/612786/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球