Variables

在模板中,使用两个大括号包含变量的方式来使用变量:

{{ name }}

该变量应该作为键值对中的键,在Context中能被查找到。

Tags

模板中使用Tags来进行简单的逻辑:

{% commet %}
    #body
{% endcommet %}

Django内置了大量的Tags

1. if :使用if标签来实现分支逻辑

{%if option%}
    #if body
{%elif option2%} 
    #elif body
{%else%} 
    #else body
{%endif%}

和python中基本相同,如果option存在(文件或者目录)、不为空(列表、集合、字典等)、不为假(布尔),则会解析#if body中的内容,否则依次类推。支持and、or、not等布尔值运算。

2. for :使用for标签来实现循环

{%for item in itemlist%}
    <p>{{item}}</p> 
{%empty%}
    <p>The item list is empty</p>
{%endfor%}

如上例,使用for实现将itemlist中的元素分段显示。for提供了一个empty条目,当itemlist为空时解析该条目下的内容。

3. 等等详见DjangoDocument给出的详细关键字列表

Filters

在模板中,支持使用类似于Unix管道的操作:

{{ name | lower }} 将name转换成小写,{{ list | length}} 返回list的长度等,Filter 内置的管道操作列表详细可见官方文档

Comments

使用{#comment#} 来插入注释

Inheritance

模板支持继承,模板的继承类似于模板的一次预解析,将父模板中的一些内容解析出来后生成新的子模板。

在父模板中,使用block标签来设置可被解析的块:{% block name %}

在子模板中,通过extend标签来继承父模板:{% extend “base.html" %},并且对父模板中的{% block name %}块进行填充:

{% block name %}
 <p>This is a block</p> 
{%endblock%}

这样,就形成一个子模板,包含父模板中所有的内容,并且对{%block name%} 块内容进行填充。

Method calls

模板标签中,支持使用对象,并且在变量标签中使用方法会直接调用,之后使用了再补充

Django学习日记05_模板_模板语言的更多相关文章

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

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

  2. Django 学习笔记(四)模板变量

    关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...

  3. Django 学习笔记(三)模板导入

    本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...

  4. Django学习---路由url,视图,模板,orm操作

    Django请求周期 url ->  路由系统  ->函数或者类 -> 返回字符串 或者 模板语言 Form表单提交: 点击提交 -> 进入url系统  ->  执行函数 ...

  5. Django学习日记04_模板_overview

    通过Django中的模板,使得设计人员和网站管理有一个对接的接口,实现网页设计和逻辑的分离,因此,模板会处理大量的文本解析内容,django中内部使用了高效的引擎来完成模板解析. 模板设置 在使用模板 ...

  6. Django学习(二)---使用模板Templates

    学会使用渲染模板的方法来显示html内容. 一.Templates是什么: HTML文件 使用了Django模板语言(Django Tamplate Language DTL) 可以使用第三方模板 二 ...

  7. Django学习笔记(3)--模板

    模板 在实际的页面大多是带样式的HTML代码,而模板是一种带有特殊语法的html文件,这个html文件可以被django编译,可以传递参数进去, 实现数据动态化.在编译完成后,生成一个普通的html文 ...

  8. django学习笔记(二)模板

    1.当模板中的变量名遇到点时,以下面的顺序查找(短路逻辑): (1)字典类型查找: >>> from django.template import Template, Context ...

  9. Django学习系列7:使用模板解决“不测试常量”规则,使用模板重构

    之前写的lists/tests.py中的单元测试,要查找特定的HTML字符串,但这不是测试HTML的高效方法. 单元测试规则之一“不测试常量”,编写断言检测HTML字符串中是否有制定的字符串序列,不是 ...

随机推荐

  1. CenterOS 7 基础命令学习

    CentOS 7 命令 网络配置 nmcli(NetworkManageCommandLineInterface)查看网卡 nmtui(NetworkManageTextUserInterface)网 ...

  2. Python 开发与接口测试学习笔记

    这是我跟着虫师学习中积累下来的学习笔记,写得比较简单,适合想学习Python开发与接口测试的初学者学习. 一.开发投票系统 1.参考官网文档,创建投票系统. https://docs.djangopr ...

  3. 《RabbitMQ Tutorial》译文 第 4 章 路由

    原文来自 RabbitMQ 英文官网的教程(4.Routing),其示例代码采用了 .NET C# 语言. In the previous tutorial we built a simple log ...

  4. backbone与require的共存问题解决

    如果向下面那样直接列出script标签可能会出现错误,   <script type="text/javascript" src="/dep/jquery-1.11 ...

  5. nginx防恶意域名解析

    今天无意间查看访问日志发现一个fhxywh.com的域名居然解析到了我的服务器,也就是说通过这个域名也能访问我的博客,这个就是赤裸裸的恶意域名解析了. 这个危害非常大,不仅会影响用户,而且不利于SEO ...

  6. MPSOC之4——petalinux提取源码

    petalinux使用太不方便,捆绑的太死板,也不通用,还不如直接用编译器来的简单高效. 本文说明从petalinux中提取出源代码的过程,前提是已经petalinux-build完成. 1. ubo ...

  7. [转载]ArchLinux 添加 archlinuxcn 源 密钥错误

    http://www.jianshu.com/p/8ed688b0a096 杜龙少 正在检查密钥环里的密钥 [######################] 100% 正在下载所需的密钥...... ...

  8. 【功能代码】---4用JS获取地址栏参数方法

    用JS获取地址栏参数方法 // 方法一:采用正则表达式获取地址栏参数:( 强烈推荐,既实用又方便!) function GetQueryString(name) { var reg = new Reg ...

  9. vue双向绑定的原理及实现双向绑定MVVM源码分析

    vue双向绑定的原理及实现双向绑定MVVM源码分析 双向数据绑定的原理是:可以将对象的属性绑定到UI,具体的说,我们有一个对象,该对象有一个name属性,当我们给这个对象name属性赋新值的时候,新值 ...

  10. 基于 HTML5 WebGL 的 3D 服务器与客户端的通信

    这个例子的初衷是模拟服务器与客户端的通信,我把整个需求简化变成了今天的这个例子.3D 机房方面的模拟一般都是需要鹰眼来辅助的,这样找产品以及整个空间的概括会比较明确,在这个例子中我也加了,这篇文章就算 ...