一、常用标签

模板标签

标签在渲染的过程中提供任意的逻辑。这个定义是刻意模糊的。例如,一个标签可以输出内容,作为控制结构,例如 “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. Jmeter性能测试入门到项目实战03

    Jmeter性能测试入门到项目实战03 P35 项目业务介绍 1,之前已经对Jmeter所有的知识点做了一个介绍,主要的业务模式是币币交易,就像b2c 2, 3, 4,主要是把登陆和交易这一块做一个并 ...

  2. outlook初用

    以前一直用 Foxmail 收发邮件,由于公司用到 sharepoint 可以跟 outlook 绑定,试了下 outlook. 第一次用 outlook 以为也是跟 foxmail 一样简单配置一下 ...

  3. 多线程事务回滚sqlSession, spring-mybatis 开启事务

    @Resource SqlContext sqlContext; /** * 多线程事务. * @param employeeDOList */ @Override public void saveT ...

  4. Centos+django+uwsgi+python 环境搭建

    首先需要具备linux的基本操作. centos 6.x 版本默认安装的 python 版本为2.x 输入: [root@dev ~]# python -VPython 2.6.6 下面装一些用到的库 ...

  5. angular 用法总结

    架构: 1.一个总页面,然后用组件组成 2.每个组件又由三个文件组成,html,css,ts,三种不同的语言放在三个不同的文件中, 3.ts是总配置文件,里面联合各个其他文件(html,css) 语法 ...

  6. chrome浏览器启用es6语法支持,初次体验浏览器端模块化加载

    医院项目,记录下,花了一个晚上的时间. 注意:最新版本的chrome浏览器已支持module语法,需要在web服务器环境下运行! 注:chrome76版本及以上不再需要设置了,浏览器已默认支持,至于从 ...

  7. 881. 救生艇 (Medium)

    问题描述 881. 救生艇 (Medium) 给定数组 people . people[i] 表示第 i 个人的体重 , 船的数量不限,每艘船可以承载的最大重量为 limit. 每艘船最多可同时载两人 ...

  8. Go 的位操作

    在计算机内存昂贵,处理能力有限的美好旧时光里,用比较黑客范的位运算方式去处理信息是首选方式(某些情况下只能如此).时至今日,直接使用位运算仍然是很多计算领域中不可或缺的部分,例如底层系统编程,图形处理 ...

  9. nginx 解决 405 not allowed错误

    1.http nginx.conf文件 error_page 后 增加代码 error_page 405 =200 @405; location @405 { proxy_method GET; pr ...

  10. Appium + Python xpath定位

    本文转自:https://www.cnblogs.com/yoyoketang/p/9174749.html 基本属性定位 以淘宝app为例,定位左上角扫一扫按钮 1.可以通过text文本定位到 // ...