主要内容:母版,继承母版,块,组件,静态文件

母版

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>Title</title>{% block page-css %}{% endblock %}
</head>
<body><h1>这是母板的标题</h1>{% block page-main %}{% endblock %}
<h1>母板底部内容</h1>
{% block page-js %}{% endblock %}
</body>
</html>

注意:我们通常会在母版中定义页面专用的CSS块和JS块,方便子页面替换

继承母版

在子页面中在页面最上方使用下面的语法来继承母版

{% extends 'layouts.html' %}

块(block)

通过在模板中使用{% block xxx %} 来定义“块”。

在子页面中通过定义母版中的block名来对应替换母版中相应的内容。

{% block page-main %}<p>花褪残红青杏小</p><p>燕子飞时</p><p>绿水人家绕</p><p>枝上柳绵吹又少</p><p>天涯何处无芳草</p>
{% endblock %}

组件

可以将常用的页面内容如导航条,页尾信息等组件保存在单独的文件中,然后在需要使用的地方按如下语法导入即可。

{% include 'navbar.html' %}

静态文件相关

{% load static %}
<img src="{% static "images/hi.jpg" %}" alt="Hi!" />

引用JS文件时使用:

{% load static %}
<script src="{% static "mytest.js" %}"></script>

某个文件多出被用到可以存为一个变量

{% load static %}
{% static "images/hi.jpg" as myphoto %}
<img src="{{ myphoto }}"></img>

使用get_static_profix

{% load static %}
<img src="{% get_static_prefix %}images/hi.jpg" alt="Hi!" />

或者

{% load static %}
{% get_static_prefix as STATIC_PREFIX %}<img src="{{ STATIC_PREFIX }}images/hi.jpg" alt="Hi!" />
<img src="{{ STATIC_PREFIX }}images/hi2.jpg" alt="Hello!" />

自定义simpletag

和自定义filter类似,只不过接受更灵活的参数。

定义注册simple tag

@register.simple_tag(name="plus")
def plus(a, b, c):return "{} + {} + {}".format(a, b, c)

使用自定义simple tag

{% load app01_demo %}{# simple tag #}
{% plus "1" "2" "abc" %}

inclusion_tag

多用于返回HTML代码片段

示例:

templatetages/my_inclusion.py

from django import templateregister = template.Library()@register.inclusion_tag('result.html')
def show_results(n):n = 1 if n < 1 else int(n)data = ["第{}项".format(i) for i in range(1, n+1)]return {"data": data}

templates/result.html

<ul>{% for choice in data %}<li>{{ choice }}</li>{% endfor %}
</ul>

templates/index.html

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta http-equiv="x-ua-compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>inclusion_tag test</title>
</head>
<body>{% load my_inclusion %}{% show_results 10 %}
</body>
</html>

转载于:https://www.cnblogs.com/ALADL/p/9767423.html

django模板系统(下)相关推荐

  1. Django模板系统(非常详细)

    翻译www.djangobook.com之第四章:Django模板系统 The Django Book:第4章 Django模板系统 revised by xin_wang 前面的章节我们看到如何在视 ...

  2. Django 模板系统

    Django模板系统 常用语法 {{}} 变量相关 {%%} 逻辑相关 变量 格式 {{ 变量名 }} 命名规则 包括任何字母数字以及下划线 ("_")的组合 变量名称中不能有空格 ...

  3. 翻译www.djangobook.com之第四章:Django模板系统

    [color=red][b]The Django Book:第4章 Django模板系统[/b][/color] revised by [url=http://xin-wang.iteye.com/] ...

  4. Django模板系统(十分 非常详细)

    转载:http://www.czug.org/python/django/04.html 翻译www.djangobook.com之第四章:Django模板系统 The Django Book:第4章 ...

  5. python 静态网站生成_使用Django模板系统或静态站点生成器生成HTML文件?

    我正在尝试为一个个人网站建立一个适当的工作流程.在 我使用的是仙人掌静态网站生成器,它利用了Django模板系统.在 我知道我想做什么,但我不知道怎么做,因为仙人掌的教程是有限的.在 我的目录结构如下 ...

  6. django html5模板,Django模板系统(非常详细)

    The Django Book:第4章 Django模板系统 revised by xin_wang 前面的章节我们看到如何在视图中返回HTML,但是HTML是硬编码在Python代码中的 这会导致几 ...

  7. django模板系统(上)

    filters 过滤 default 替代作用 filesizeformat 格式化为人类可读 add 给变量加参数 lower 小写 upper 大写 title 标题 ljust 左对齐 rjus ...

  8. 了解DJango模板系统

    作为一个Web框架,Django需要一个便利的方式来动态地生成HTML,最常见的方式是依赖模板,模板中既包含了所希望HTML输出的静态部分,又有一些语法用来描述如何动态插入这些上下文内容. Djang ...

  9. python dashboard django_python终极篇 ---django 模板系统

    模板系统 1. MVC和MTV框架1. MVC M: model 模型 对数据库进行操作 V:view 视图 给用户提供页面 C:controller 控制器 负责调度 传递指令2. MTV: M: ...

  10. django模板系统Template

    为了方便理解先了解一下python的字符串格式化. 我们还可以进行映射传参 string=''' hello world I am%(name)s',I' m %(age)s years old'' ...

最新文章

  1. Ubuntu 13.10 安装软件失败后出现的问题——已安装 post-installation 脚本 返回了错误号 1...
  2. 线程,协程对比和Python爬虫实战说明
  3. 查看程序占用内存_电脑内存不足怎么办
  4. Tomcat中组件的生命周期管理(三)
  5. Java源码解析——Java IO包
  6. 如何重做计算机系统软件,电脑卡如何一键重做Win7旗舰版
  7. matlab+adst,SPC572L64E3 - 用于汽车动力系统应用的32位Power Architecture MCU - STMicroelectronics...
  8. 【java】docker容器内使用jstack等命令报错 The VM does not support the attach mechanism
  9. C#面向对象名词比较(三)
  10. 每日Ubuntu小技巧 - 在Ubuntu上面安装VMware Workstation
  11. 如何恢复丢失的分区及文件(视频教程)
  12. 14、 Integer 与 int 的区别
  13. Hibernate-01-API及环境搭建
  14. 计算机软件工程师报名条件,中级软件工程师证书报考条件有哪些要求?
  15. c语言仿宋gb2312字体,gb2312字体下载|仿宋gb2312字体 v2.0 官方版-520下载站
  16. PTA:7-120 新浪微博热门话题 (30分)--(map方法,加解析)
  17. pta第六章错题函数and编程
  18. Oracle表分区合并
  19. 软件测试应该何时介入项目?
  20. 【PPic】项目中重要第三方组件集成打包测试

热门文章

  1. 问一个网络工程师是怎么崩溃之一的?
  2. Centos7换yum源
  3. mysql分区表达式_怎么定义 mysql hash分区使用的用 户定义的表达式
  4. FileIo 删除类中的private方法
  5. e4a服务器文件,e4a链接网站服务器
  6. redis——缓存击穿/穿透/雪崩
  7. 算法(7)-leetcode-explore-learn-数据结构-数组-小结
  8. Python(18)-字典dictionary、集合
  9. Windows7右键菜单栏添加打开cmd项
  10. 两条边延长角会有什么变化_叶片锁是什么样的 叶片锁使用方法【详解】