模板语法之标签

语法

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

{% 结束标签%}

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)

大家都在看

  • Mock.js的简单使用

    Mock.js的简单使用 简述 Mock.js 是一款 模拟数据生成器,旨在帮助前端攻城师独立于后端进行开发,帮助编写单元测试。 功能 根据数据模板生成模拟数据。 模拟 Ajax …

    数据库 2023年6月11日
    099
  • InnoDB数据存储结构

    MySQL服务器上 &#x5B58;&#x50A8;&#x5F15;&#x64CE;负责对表中数据的读取和写入工作,不同存储引擎中 &#x5…

    数据库 2023年5月24日
    056
  • centos8安装mysql

    前言 最近在centos8系统下部署django项目时,要用到mysql数据库,在安装中遇到了点坑,之后参考了一位博主的文章,也是顺利的安装配置成功,博主原文连接: ((20条消息…

    数据库 2023年5月24日
    075
  • MySQL锁:03.InnoDB行锁

    传送门:MySQL锁:01.总览传送门:MySQL锁:02.InnoDB锁传送门:MySQL锁:03.InnoDB行锁 InnoDB 行锁 锁排查可以用的视图和数据字典 InnoD…

    数据库 2023年6月16日
    0108
  • mysql8主从配置

    一、一般配置主从(这里主是m3300,从是3301、3302) 1.配置m3301 从mysql8里拿出这两个文件到m3301 2.配置my.ini &#x521D;&am…

    数据库 2023年5月24日
    077
  • 读取资源文件的几种常用方法

    资源文件的读取方法: 本地读取资源文件 undefined2. 服务器(Tomcat)通过ServletContext获取: ServletContext servletConte…

    数据库 2023年6月16日
    088
  • Spring源码分析-BeanFactoryPostProcessor

    Spring源码分析-BeanFactoryPostProcessor 博主技术有限,本文难免有错误的地方,如果您发现了欢迎评论私信指出,谢谢JAVA技术交流群:737698533…

    数据库 2023年6月16日
    089
  • Mybatis order by语句使用<Choose><When>动态拼装无效的原因及解决方法

    在使用 <choose> <when test=""> when> <otherwise> otherwise>…

    数据库 2023年6月16日
    072
  • phpstrom以及webstrom等jetbrains全家桶激活方法

    因为最近重新安装了phpstrom,所以在网上找了许多激活方式,各种激活码和加公众号都试过了,没有一个能用的,直到我找到了以下的方式,亲测可用: 原理是我们通过代码搜索其他授权服务…

    数据库 2023年6月14日
    0136
  • Our Feeling

    走过春夏秋冬走过五湖四海就是没有走过你 看过日出日落看过潮起潮落就是看不到你 本文来自博客园,作者:ukyo–BlackJesus,转载请注明原文链接:https://…

    数据库 2023年6月11日
    086
  • Go LRU Cache

    目录 LRU Cache container/list.go 2.1 list 数据结构 2.2 list 使用例子 transport.go connLRU 结尾 正文 1. L…

    数据库 2023年6月9日
    081
  • Spark知识点总结

    Spark基础 Spark优势 优秀的数据模型与丰富计算抽象 Spark 借鉴了 MapReduce 思想发展而来,保留了其分布式并行计算的优点并改进了其明显的缺陷。 让中间数据存…

    数据库 2023年6月6日
    072
  • 第七章:Hexadecimal, octal, ASCII, UTF8, Unicode, Runes

    本篇翻译自《Practical Go Lessons》 Chapter 7: Hexadecimal, octal, ASCII, UTF8, Unicode, Runes 1 你…

    数据库 2023年6月6日
    080
  • MySQL锁(乐观锁、悲观锁、多粒度锁)

    锁 并发事务可能会发生什么情况: [En] What may happen to concurrent transactions: 读-读事务并发:此时是没有问题的,读操作不会对记…

    数据库 2023年5月24日
    084
  • 前端常用函数封装

    常用函数封装 获取某日期若干个工作日后的日期 * &#x53C2;&#x6570;: * time: [String] &#x7ED9;&#x5B9…

    数据库 2023年6月11日
    082
  • Consul 入门-集群搭建

    集群搭建 通过 Docker 来搭建一个由3个 Server 组成的数据中心集群,再启动一个 Client 容器来做服务注册和发现的入口,开模拟看看 Server 启动命令 拉取最…

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