一、常用标签

模板标签

标签在渲染的过程中提供任意的逻辑。这个定义是刻意模糊的。例如,一个标签可以输出内容,作为控制结构,例如 “if”语句或“for”循环从数据库中提取内容,甚至可以访问其他的模板标签。

标签语法:由{% %}来定义的,例如:{% tag %} {% endtag %}

常用标签

1、 if/elif/else:可以使用and/or/in/not/==/!=/<=/>=,来进行判断。ifequal/ifnotequal   li = ['x', 'y', 'z']

2、 for...in...:跟python中的for...in...用法一样。

forloop.counter:当前迭代的次数,下标从1开始。 1,2,3

forloop.counter0:当前迭代的次数,下标从0开始。0,1,2

forloop.revcounter:当前迭代的次数,下标从大到小。3,2,1

forloop.revcounter0:当前迭代的次数,下标从大到小。2,1,0

forloop.first:返回bool类型,如果是第一次迭代,返回True,否则返回Flase。

forloop.last:返回bool类型,如果是最后一次迭代,返回True,否则返回Flase。

forloop.parentloop:如果发送多层for循环嵌套,那么这个变量返回的是上一层的for。

3、 for...in...empty...:如果没有数据,跳转到empty中。

4、 load:加载第三方标签,最常用的是{% load static %}。

5、 url:返回一个命名了的URL的绝对路径。

6、 with:缓存一个变量。

7、 autoescape:开启和关闭自动转义。

<!--if的例子-->
{% if name == 'python' %}
这个是python的页面
{% elif name == 'django' %}
这个是django的页面
{% else %}
哈哈哈! 是{{ name }}的呢!
{% endif %}
<!--for的例子-->
{% for i in ls %}
{% if forloop.counter == 1 %}
<li>这个是第一个值</li>
{% else %}
<li>{{ i }}</li>
{% endif %}
{% endfor %}
<!--url页面转换的例子-->
<!--urls.py文件代码-->
path('index5/', views.index_5),
path('article_new/', views.article_new, name='new_article'),
path('test/<int:t_id>/', views.test, name='test'),
<!--html代码 -->
<a href="/book/index5/">到过滤器那个页面</a><br>
<a href="{% url 'new_article' %}">新的文章</a><br>
<a href="{% url 'test' 123 %}">url加参数传递</a><br> <!--with的使用 -->
{% with test_name as tn %}
11111{{ tn }}<br>
22222{{ tn }}
{% endwith %}
<!--autowscape的使用 -->
原始的:{{ html }}<br>
过滤器方式:{{ html |safe }}<br>
标签方式:
{% autoescape off %}
{{ html }}<br>
{% endautoescape %}

二、模板的继承与引用

Django模板引擎中最强大也是最复杂的部分就是模板继承了。模板继承可以让你创建一个基本“骨架”模版。它包含你站点的全部元素,并且可以定义能够被子模版覆盖的blocks。

1. 创建三个模板文件,base.html, indexxx.html, ss.html

2. base.html中的内容

3. ss.html中的内容

4. indexxx.html中的内容

模板继承的总结

模板基础层使用extends标签实现。通过使用block来给子模版开放接口。

1. extends必须是模板中的第一个出现的标签。

2. 子模版中的所有内容,必须出现在父模板定义好的block中,否则django将不会渲染。

3. 如果出现重复代码,就应该考虑使用模板。

4. 尽可能多的定义block,方便子模板实现更细的需求。

5. 如果在某个block中,要使用父模板的内容,使用block.super获取。

1004.Django模板标签的更多相关文章

  1. 转:django模板标签{% for %}的使用(含forloop用法)

    django模板标签{% for %}的使用(含forloop用法)  {%  %}虽然这个是写在html中,但是这里边写的是服务端代码 在django模板标签中,{% for %} 标签用于迭代序列 ...

  2. Django 模板标签[转]

    Django 模板标签if/else 标签 基本语法格式如下: {% if condition %}     ... display{% endif %} 或者: {% if condition1 % ...

  3. 解决AngularJS和Django模板标签冲突问题

    原地址 Django和AngularJS在模板中使用同样的符号来引用变量,例如 {{variable_name}}. 有两种解决办法,各有利弊.一个修改AngularJS模板语法,另一个使用Djang ...

  4. Django 学习第四天——Django 模板标签

    一.模板标签: 作用:标签在渲染的过程中提供任意的逻辑:例如 if for...in... 等 标签语法:由 {% %} 来定义的:例如:{% tag %}xxx{% endtag %} 常用标签: ...

  5. python的Web框架,Django模板标签及模板的继承

    模板标签 在传递数据的时候,会有大量的数据展示在浏览器上,而数据会是动态变化的,在html的编写中,数据也是需要动态的,而不能是写死的,如果动态展示呢. 给定的例子数据 views传递数据给html ...

  6. Django模板标签

    一.模板标签 1.模板标签是在模板中运用python语言的实现,如for循环,if语句 2.模板标签的运用 2.1在teacher模板下创建students_list模板, 在teacher视图中国创 ...

  7. Django 学习笔记(五)模板标签

    关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...

  8. Django之博客系统:自定义模板标签

    Django提供了很多内置的模板标签比如{% if %}或者{% block %}Django也允许你创建自己的模板标签(template tags)来执行自定义的动作.当你需要在你的模板中添加功能而 ...

  9. Django——4 模板标签 模板的继承与引用

    Django 模板标签 常用标签 模板的继承与引用 模板标签 标签在渲染的过程中提供任意的逻辑 标签语法: 由%}和 {% 来定义的,例如:{%tag%} {%endtag%} 这个定义是刻意模糊的. ...

  10. django模板系统基础

    模板系统基础Django模板是一个string文本,它用来分离一个文档的展现和数据 模板定义了placeholder和表示多种逻辑的tags来规定文档如何展现 通常模板用来输出HTML,但是Djang ...

随机推荐

  1. SignalR 的应用

    一.应用场景: 在项目中有一个地方需要定时查询数据库是否有数据,如果有则显示在界面上. 二.可以使用ajax定时查询来做: var inter = window.setInterval(refresh ...

  2. javascript【应用】debounce和throttle

    debounce防抖 在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新计时:典型的案例就是输入搜索:输入结束后n秒才进行搜索请求,n秒内又输入的内容,就重新计时. <div id=& ...

  3. java连接couchbase的memcache

    没有参考代码的时候重新写还是有点累的,这是重温了,第一次写的时候参考了别的一些乱七八糟的代码,虽然不是和这个一样的,不过在不懂的情况下还是很快写出来了,反而是这次光是找需要哪些jar都搞了半天,最后发 ...

  4. ASP.NET WebAPI 单元测试-UnitTest

    xUnit.Net

  5. php严格模式的使用

    <?php declare (strict_types = 1); namespace app\controller; use app\BaseController; use think\fac ...

  6. Java流程控制之for循环

    for循环[重点] 虽然所有的循环结构都可以用while或者do...while表示,但Java提供了另一种语句--for循环,使一些循环结构变得更加简单. for循环语句是支持迭代的一种通用结构,是 ...

  7. 关于el-dialog弹窗组件关闭报错事件

    以下写法,向父组件抛出关闭事件, (正常点击弹窗footer的关闭时没有报错,但是点击空白处及右上角的×号,就会报以上错误) 原因, close事件为已经关闭了弹窗后的事件,官方还给出了  befor ...

  8. QFramework UI 笔记(后续不断 直到UKitI篇结束)

    1.所有的UIElement  传消息给 UIPanel 时,必须先注册 SendEvent();      RegisterEvent(); 2.注意Unity直接生成控件的名称,命名带(1)之类的 ...

  9. 上传镜像到harbor

    https://blog.csdn.net/weixin_45335305/article/details/123817541

  10. Linux 使用vsftpd服务传输文件

    文件传输协议 FTP是一种在互联网中进行文件传输的协议,基于客户端/服务器模式,默认使用20.21号端口,其中端口20(数据端口)用于进行数据传输,端口21(命令端口)用于接受客户端发出的相关FTP命 ...