## 模板变量
  - 普通变量
    {{ name }}
  - 对象变量(使用点号访问对象属性和方法,方法不加括号)
    {{ person.name }}

## 常用模板标签

  # if标签,支持and,or,not和嵌套,不支持括号
    {% if %}{% endif %}
    {% if %}{% elif %}...{% else %}{% endif %}

  # for标签,用法与Python中基本相同
    {% for item in items %}{% endfor %}
    {% for item in items reversed %}{% endfor %} # 反向迭代
    {% for k, v in data.items %}{% endfor %}

    {% for item in items %}     #相当于:if items:
      语句一                     for item in items:
    {% empty %}                  语句一
      语句二               else:
    {% endfor %}                 语句二

    - 在for标签中自带forloop对象
      - forloop.counter 从1开始计数
        {% for item in items %}
          {{ forloop.counter }}: {{ item }}
      - forloop.counter0 从0开始计数
      - forloop.revcounter 逆向计数,最后一个数是1
      - forloop.revcounter0 逆向计数,最后一个数是0
      - forloop.first 布尔值,第一次循环时为True
      - forloop.last 布尔值,最后一次循环时为True
      - forloop.parentloop 引用父级循环的forloop对象

  # 相等判断(x, y可以是变量,字符串,整数,小数,变量不需要加{{}},字符串可以是单/双引号引起的硬编码,但列表、字典、布尔值不能硬编码,可以使用标签变量赋值,并且同样支持{% else %}标签)
    {% ifequal x y %}{% endifequal %}
    {% ifnotequal x y %}{% endifnotequal %}

  # 注释
    {# 单行注释 #}
    {% comment %}
      多行注释
    {% endcomment %}

## 过滤器(Python中关于字符串方法基本适用)
  {{ name|lower }} 全小写
  {{ name|upper }} 全大写
  {{ name|title }} 首字母大写
  {{ users_list|first }} 第一个元素
  {{ users_list|last }} 最后一个元素
  {{ sentence|truncatewords:"5" }} 字符串截断,以空格区分(所以中文无效),取前五个单词,多余的词用...省略,数字必须放在双引号内
  {{ sentence|slice:"4" }} 字符串切分,可以用于中文,多余的词没有任何标识
  {{ sentence|addslashes}} 在反斜线,单引号,双引号前面加一个斜线,可用于转义字符串
  {{ birthday|data:"F j, y" }} 格式化date或datatime对象,双引号内也可以是 DATE_FORMAT、DATETIME_FORMAT、SHORT_DATE_FORMAT 或 SHORT_DATE-TIME_FORMAT
  {{ word:length }} 返回长度

## 模板引用,引用其他模板的全部内容
  {% include url %} # url可以是双引号字符串硬编码,也可以是变量

## 模板继承
  - 父模板使用block标签表示可以被子模板修改的块
    {% block block_name %}{% endblock %}
  - 子模板在文件第一行使用extends标签继承父模板,并同样使用block标签修改父模板中的同名块
    {% extends url %}   # url可以是双引号字符串硬编码,也可以是变量
    {% block block_name %} 新的内容 {% endblock %}
  - 继承树中的任何模板都能访问上下文中的每一个模板变量

## 使用模板

 from django.shortcuts import render

 def home(request):
return render(request, "index.html", {"name": "Stanley", "age":""})
# 第一个参数必须是request,第二个参数是模板路径,第三个参数是模板变量

Django模板语言(DTL)基础的更多相关文章

  1. django框架基础-django模板语言-长期维护

    ##################     常用的模板语言       ####################### # django的模板语言, # # 只需要记两种特殊符号: # # {{ } ...

  2. Django 模板语言 路由 视图

    . 模板语言(字符串替换) . 母版和继承 . 什么时候用母版? html页面有重复的代码,把它们提取出来放到一个单独的html文件. (比如:导航条和左侧菜单) . 子页面如何使用母版? {% ex ...

  3. Django模板语言(常用语法规则)

    Django模板语言 The Django template language 模板中常用的语法规则 {最新版本的Django语法可能有改变,不支持的操作可能支持了.[HTML教程 - 基本元素/标签 ...

  4. 10:django 模板语言

    Django的模板语言的目的是取得力量和易用性之间的平衡,与其他的模板语言相比,django模板语言显得更简单,更专一, django模板系统由模板,变量,过滤器,标签,注释等主要部分组成 模板 一个 ...

  5. Django模板语言(一)

    1,Django模板语言 1.1>基础语法:1.1.1,变量相关:{{ 变量名 }},1.1.2,逻辑相关{% ... %} 在Django模板语言中按此语法使用:{{ 变量名 }},当模板引擎 ...

  6. 6月15日 python学习总结 Django模板语言相关内容

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

  7. Django模板语言初识

    一.Django框架简介 1.MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model).视图(View)和控 ...

  8. Django模板语言的复用

    一.include标签 由于在项目中,往往会出现多个页面拥有一个或几个相同的页面版块,或是一个页面多个页面版块是相同的,基于这个问题,我们可以采用模板语言复用include标签来帮我们解决,这样就避免 ...

  9. Django模板语言相关内容 Djan

    Django模板语言相关内容   Django模板系统 官方文档 常用语法 只需要记两种特殊符号: {{  }}和 {% %} 变量相关的用{{}},逻辑相关的用{%%}. 变量 {{ 变量名 }} ...

随机推荐

  1. 关于 C# 中接口的一些小结

    < 关于 C# 中“接口”的一些小结 > 对于 C# 这样的不支持多重继承的语言,很好的体现的层次性,但是有些时候多重继承的确有一些用武之地.   比如,在 Stream 类 . 图形设备 ...

  2. Matlab GUI读入图片

    % --- Executes on button press in pushbutton1. function pushbutton1_Callback(hObject, eventdata, han ...

  3. Ruby系列文章之1---开发者应该熟悉的10个工具

    1. Git Git是进入Ruby这个生态圈首先最应该学会的工具.几乎所有以Ruby开发出来的套件都放在Github上.也就是不管你要下载或修改协作都需要透过Git. 2. RVM Ruby有很多种i ...

  4. sqlserver broker远端端点证书认证

    1:采用windows验证的方法: CREATE ENDPOINT InstInitiatorEndpoint STATE = STARTED AS TCP ( LISTENER_PORT = ) F ...

  5. Dynamics CRM 之汇总字段

    用插件汇总数据,速度很慢,导数据的时候更慢!那就用汇总字段- - 新建个汇总字段,字段类型选择汇总.点击编辑进入逻辑编辑 相关实体:对当前实体或者相关联的实体的字段值进行判断筛选. 筛选器:对相关实体 ...

  6. Linux下实现免密码登录

    1.Linux下生成密钥 ssh-keygen的命令手册,通过”man ssh-keygen“命令: 通过命令”ssh-keygen -t rsa“ 生成之后会在用户的根目录生成一个 “.ssh”的文 ...

  7. leetcode 322零钱兑换

    You are given coins of different denominations and a total amount of money amount. Write a function ...

  8. win8中 用office 提示值不在预期的范围内

    原文:http://bbs.kafan.cn/thread-1401951-1-1.htmlhttp://bbs.kafan.cn/thread-1401951-1-1.html 错误如下: 名称:  ...

  9. 20165322 实验一 Java开发环境的熟悉

    实验一 Java开发环境的熟悉 一.实验内容及步骤 (一)命令行下Java程序开发 按照步骤新建目录.键入代码,再编译运行输出.运行结果和TREE结构图如下: (二) IDEA下Java程序开发.调试 ...

  10. 初学MillerRabin素数测试

    前言 \(MillerRabin\)素数测试是一种很实用的素数判定方法. 它只针对单个数字进行判定,因而可以对较大的乃至于\(long\ long\)范围内的数进行判定,而且速度也很快,是个十分优秀的 ...