运维咖啡吧

享受技术带来的乐趣,体验生活给予的感动

Django Template常见用法及配置介绍

模板标签

django template默认支持几个模板标签,通过模板标签可以实现一些高级的功能,常用的模板标签有以下几个

extends

extends为模板继承的标签,表示此模板扩展了父模板,通常在继承页面时使用,例如页面继承base模板

{% extends "base.html" %}

include

include为模板包含的标签,表示此模板会包含以下模板的内容,通常对于一些有公共模板元素的模板,将公共模板元素独立为一个模板,然后在其他模板中引用

<!-- 资源详情 -->
{% include "carrier/instance.detail.html" %}

include的子模板需要注意元素ID不要与当前模板重复

block

block标记模板中哪些部分可以被子模板替换,通常基础模板中会构建一个基本框架,对于一些需要变动的地方会用block代替,继承基础模板后就可以通过block模板标签替换响应的内容

{% block breadcrumb %}
  <button class="btn btn-secondary" onclick="exportUrl()" id="id-export"><i class="fa fa-download"></i> 导出</button>
  <button class="btn btn-info" onclick="openUrl()" id="id-api"><i class="fa fa-link"></i> API</button>
{% endblock %}

for

模板中循环标签

{% for item in lPage %}
  <tr>
    <td>{{ item.user.username }}</td>
    <td>{{ item.software.software_name }}</td>
    <td>{{ item.grant_date | date:"Y-m-d" }}</td>
    <td>{{ item.revoke_date }}</td>
  </tr>
{% endfor %}

模板中循环字典

{% for k,v in dict.items %}
    {{ k }}
    {{ v }}
{% endfor %}

if

模板中判断标签

{% if perms.carrier.bucket_instance_change %}
  <button class="btn btn-success" type="button" onclick="createForm()"><i class="fa fa-plus"></i> 添加</button>
{% endif %}