1004.Django模板标签
一、常用标签
模板标签
标签在渲染的过程中提供任意的逻辑。这个定义是刻意模糊的。例如,一个标签可以输出内容,作为控制结构,例如 “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模板标签的更多相关文章
- 转:django模板标签{% for %}的使用(含forloop用法)
django模板标签{% for %}的使用(含forloop用法) {% %}虽然这个是写在html中,但是这里边写的是服务端代码 在django模板标签中,{% for %} 标签用于迭代序列 ...
- Django 模板标签[转]
Django 模板标签if/else 标签 基本语法格式如下: {% if condition %} ... display{% endif %} 或者: {% if condition1 % ...
- 解决AngularJS和Django模板标签冲突问题
原地址 Django和AngularJS在模板中使用同样的符号来引用变量,例如 {{variable_name}}. 有两种解决办法,各有利弊.一个修改AngularJS模板语法,另一个使用Djang ...
- Django 学习第四天——Django 模板标签
一.模板标签: 作用:标签在渲染的过程中提供任意的逻辑:例如 if for...in... 等 标签语法:由 {% %} 来定义的:例如:{% tag %}xxx{% endtag %} 常用标签: ...
- python的Web框架,Django模板标签及模板的继承
模板标签 在传递数据的时候,会有大量的数据展示在浏览器上,而数据会是动态变化的,在html的编写中,数据也是需要动态的,而不能是写死的,如果动态展示呢. 给定的例子数据 views传递数据给html ...
- Django模板标签
一.模板标签 1.模板标签是在模板中运用python语言的实现,如for循环,if语句 2.模板标签的运用 2.1在teacher模板下创建students_list模板, 在teacher视图中国创 ...
- Django 学习笔记(五)模板标签
关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...
- Django之博客系统:自定义模板标签
Django提供了很多内置的模板标签比如{% if %}或者{% block %}Django也允许你创建自己的模板标签(template tags)来执行自定义的动作.当你需要在你的模板中添加功能而 ...
- Django——4 模板标签 模板的继承与引用
Django 模板标签 常用标签 模板的继承与引用 模板标签 标签在渲染的过程中提供任意的逻辑 标签语法: 由%}和 {% 来定义的,例如:{%tag%} {%endtag%} 这个定义是刻意模糊的. ...
- django模板系统基础
模板系统基础Django模板是一个string文本,它用来分离一个文档的展现和数据 模板定义了placeholder和表示多种逻辑的tags来规定文档如何展现 通常模板用来输出HTML,但是Djang ...
随机推荐
- spring-cloud项目初始化问题
无法引入本地依赖 参考:https://blog.csdn.net/qq_39684784/article/details/115289982 时区问题: url设置:serverTimezone=U ...
- Vulnhub 靶场 DOUBLETROUBLE: 1
Vulnhub 靶场 DOUBLETROUBLE: 1 前期准备 靶机地址:https://www.vulnhub.com/entry/doubletrouble-1,743/ kali攻击机: 靶机 ...
- import cv2时出现ImportError: DLL load fail:找不到指定模块
- PNAS:微生物组分析揭示人类皮肤的独特性
https://blog.csdn.net/woodcorpse/article/details/87989663
- nginx4层代理ssh服务
四层代理依赖模块ngx_stream_core_module,默认情况下,此模块不构建,应使用配置参数启用 --with-stream 配置文件内容: ... stream { upstream ss ...
- 93、springboot 和springcloud版本对比
https://start.spring.io/actuator/info 建议转为json
- 1.EditPlus
EditPlus软件使用 1.新建 XML 文件 2.编辑器设置 在文件保存时选择编码格式
- STM32中HAL库和标准库的区别
转载自:https://www.lmonkey.com/t/RwykY8bBX STM32标准库与HAL库比较 ST为开发者提供了非常方便的开发库.到目前为止,有标准外设库(STD库).HAL库.LL ...
- jmeter非GUI模式运行-分布式测试
上一篇文章我们说到了jmeter命令行运行但是是单节点下的, jmeter底层用java开发,耗内存.cpu,如果项目要求大并发去压测服务端的话,jmeter单节点难以完成大并发的请求,这时就需要对j ...
- hadoop模板虚拟机配置
在安装好虚拟机软件后,进行IP配置 配置windows系统的ip 配置Vmware的ip 配置虚拟机的ip 首先 输入su root切换至root身份. 然后配置ip和网关 vim /etc/sysc ...