Django学习日记05_模板_模板语言
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_模板_模板语言的更多相关文章
- Django 学习笔记(五)模板标签
关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...
- Django 学习笔记(四)模板变量
关于Django模板变量官方网址:https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.传入普通变量 在hello/Hell ...
- Django 学习笔记(三)模板导入
本章内容是将一个html网页放进模板中,并运行服务器将其展现出来. 平台:windows平台下Liunx子系统 目前的目录: hello ├── manage.py ├── hello │ ├── _ ...
- Django学习---路由url,视图,模板,orm操作
Django请求周期 url -> 路由系统 ->函数或者类 -> 返回字符串 或者 模板语言 Form表单提交: 点击提交 -> 进入url系统 -> 执行函数 ...
- Django学习日记04_模板_overview
通过Django中的模板,使得设计人员和网站管理有一个对接的接口,实现网页设计和逻辑的分离,因此,模板会处理大量的文本解析内容,django中内部使用了高效的引擎来完成模板解析. 模板设置 在使用模板 ...
- Django学习(二)---使用模板Templates
学会使用渲染模板的方法来显示html内容. 一.Templates是什么: HTML文件 使用了Django模板语言(Django Tamplate Language DTL) 可以使用第三方模板 二 ...
- Django学习笔记(3)--模板
模板 在实际的页面大多是带样式的HTML代码,而模板是一种带有特殊语法的html文件,这个html文件可以被django编译,可以传递参数进去, 实现数据动态化.在编译完成后,生成一个普通的html文 ...
- django学习笔记(二)模板
1.当模板中的变量名遇到点时,以下面的顺序查找(短路逻辑): (1)字典类型查找: >>> from django.template import Template, Context ...
- Django学习系列7:使用模板解决“不测试常量”规则,使用模板重构
之前写的lists/tests.py中的单元测试,要查找特定的HTML字符串,但这不是测试HTML的高效方法. 单元测试规则之一“不测试常量”,编写断言检测HTML字符串中是否有制定的字符串序列,不是 ...
随机推荐
- php结合redis实现秒杀功能
<?php 第一种,简单实现 $conn=mysql_connect("localhost","big","123456"); if( ...
- QT的radioButton组的使用
在使用Qt的radioButton控件时,会产生一个疑问,如何让你选择的那个radio得到一个数据,进行判断,网上的一些资料有些不全,容易出错. 所以你得做件事,给每个radioButton进行赋初值 ...
- bitcms内容管理系统 3.1版源码发布
开源bitcms内容管理系统采用ASP.NET MVC5+MySql的组合开发,更适应中小型系统低成本运行. bitcms的主要功能 1.重写了APS.NET MVC的路由机制.bitcms使用路由参 ...
- vue.js事件,属性,以及交互
这是我学习vue的第二天,今天主要学习了如何利用vue阻止事件冒泡,阻止事件的默认行为,键盘事件以及如何添加class.style这些属性,以及如何利用vue来进行数据交互,利用百度的一个API来写一 ...
- ASP.NET Core Web API下事件驱动型架构的实现(一):一个简单的实现
很长一段时间以来,我都在思考如何在ASP.NET Core的框架下,实现一套完整的事件驱动型架构.这个问题看上去有点大,其实主要目标是为了实现一个基于ASP.NET Core的微服务,它能够非常简单地 ...
- JAVA基础-----Maven项目的搭建
Maven项目的搭建 一.前言 maven官网:http://maven.apache.org/, 文章简介:本文章从三个模块来了解Maven,分别是 Maven的基本概念~, Maven项目的安装和 ...
- java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@412d7230
近期遇到了如标题这种错误,再次记录解决方法.本文參考帖子: http://bbs.csdn.net/topics/390196217 出现此bug的原因是在内存回收上.里面用Bitamp的代码为: t ...
- Dell poweredge r210进BIOS改动磁盘控制器(SATA Controller)接口模式
Dell poweredge r210进BIOS改动磁盘控制器(SATA Controller)接口模式 开机后按F2键进入BIOS设置,例如以下图: BIOS设置主界面: 使用上下键移动光标到&qu ...
- java 线程 捕获异常
java 线程 捕获异常 来自:thinking in java 4 文件夹20.2.13 package org.rui.thread.concurrent; import java.util.c ...
- Windows 10 安装 Docker for Windows
Docker for Windows是Docker社区版(CE)应用程序. Docker for Windows安装包包括在Windows系统上运行Docker所需的一切. 本主题介绍了预安装注意事项 ...