模板语法之标签

语法

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

{% 结束标签%}

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)

大家都在看

  • Jenkins+gitlab+docker+harbor容器化自动部署详细流程

    环境:Linux版本:Centos7 一、更新源:yum update 二、安装docker:yum install docker -y 启动docker: systemctl s…

    数据库 2023年6月16日
    0130
  • 在Ubuntu系统上安装StoneDB数据库

    今天我会进行StoneDB数据库在Ubuntu 22.04系统下的安装。 严格按照官方文档的步骤操作,看看安装能否成功。 [En] Strictly follow the step…

    数据库 2023年5月24日
    0105
  • spring上传文件

    本文将说明spring上传文件如何配置,以及从request请求中解析到文件流的原理 #添加依赖 主要用来解析request请求流,获取文件字段名、上传文件名、content-ty…

    数据库 2023年6月16日
    079
  • 解决数据库报错Error 1390: Prepared statement contains too many placeholders的问题

    今天在开发项目时,试着一次性插入大量数据,结果出现了以下报错: 依稀记得以前也遇到过类似的问题,于是打算记录下错误原因及解决过程: 首先,这是由于sql语句中占位符数量限制导致的 …

    数据库 2023年6月14日
    098
  • RadonDB MySQL on K8s 2.1.2 发布!

    RadonDB MySQL on Kubernetes 于 2 月 17 日发布了新版本 2.1.2 。该版本在节点的重建、增删等方面进行了全面升级。致谢: 首先感谢 @andyl…

    数据库 2023年5月24日
    082
  • DELL误删raid后恢复方法

    DELL误删raid后恢复方法 一台有RAID1信息的硬盘A,一块误删的硬盘B 1.插入硬盘A和B,启动,再按Ctrl+R键,进入raid管理 发现没有硬盘信息,按F2键 选择Fo…

    数据库 2023年6月9日
    0102
  • Gorm 的黑魔法

    开发过程中,看到同事的代码写了这么一段: db = db.Session(&gorm.Session{Context: db.Statement.Context}).Fir…

    数据库 2023年6月9日
    0104
  • 链表(Java)实现

    链表 先给出自定义的list接口,后面几种链表的实现了该接口 public interface List { //统计顺序表元素个数 int size(); //判断顺序表是否为空…

    数据库 2023年6月16日
    089
  • MySQL的FIND_IN_SET函数

    语法:FIND_IN_SET(str,strlist) https://www.cnblogs.com/xiaoxi/p/5889486.html Original: https:…

    数据库 2023年6月16日
    060
  • windows与linux查看文件md5值

    windows CertUtil -hashfile FilePath MD5 linux md5sum FilePath Original: https://www.cnblog…

    数据库 2023年6月11日
    089
  • Redis小秘密

    Redis小秘密 临渊羡鱼,不如退而织网。 一、Redis基本数据类型 想必很多人都能脱口而出String、List、Hash、Sorted Set和Set五种基本数据类型。 以及…

    数据库 2023年6月14日
    073
  • Java关键字总结(一)

    static总结: 1、修饰静态变量,通过类名.变量名,不需要实例化对象,属于静态资源,所有类实例共享 2、修饰静态方法,通过类名.方法,不需要实例化对象,属于静态资源,所有类实例…

    数据库 2023年6月6日
    0119
  • entitybuilder–一个简单的业务通用框架

    关于业务通用框架的思考 业务系统是千差万别的,例如,保存、更新和删除订单,或者保存订单和保存客户,走的根本不是一个流程。但是,它们还是有共同点,它们的流程大致可以分成下面的几个部分…

    数据库 2023年6月6日
    093
  • 16-ArrayList和LinkedList的区别

    1.1、作用 ArrayList和LinkedList都是实现了List接口的容器类,用于存储一系列的对象引用。它们可以对元素的增删改查进行操作 对于ArrayList,它在集合的…

    数据库 2023年6月16日
    084
  • javaWeb知识点大集合!!!

    pom文件: 4.0.0 org.example javaweb_maven 1.0-SNAPSHOT war UTF-8 1.7 1.7 com.github.pagehelpe…

    数据库 2023年6月16日
    087
  • mysql使用存储过程批量给表加字段

    背景:在一个项目中,您需要将相同的字段添加到数百个表中,这很难手动添加,因此您计划使用存储过程来实现。 [En] Background: in a project, you nee…

    数据库 2023年5月24日
    0120
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球