博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
django中模板的继承与包含操作
阅读量:4053 次
发布时间:2019-05-25

本文共 3208 字,大约阅读时间需要 10 分钟。

django中模板继承操作:

模板继承

模板继承允许你建立一个基本的”骨架”模板, 它包含你所有最常用的站点元素 并 定义了一些可以被子模板覆盖的block.

base.html
{% block title %}久久寻网{% endblock %}
{% block side %}
{% endblock %}
{% block content %}{% endblock %}

我们称它为 base.html, 定义了一些简单的 HTML 骨架文档, 你可以把它用到一些简单两列的网页上. “子” 模板的任务就是用内容填写这些空白的内容块.

子模板

{% extends "base.html" %}{% block title %}重阳博客{% endblock %}{% block content %}{% for entry in blog_entries %}    

{
{ entry.title }}

{

{ entry.body }}

{% endfor %}{% endblock %}

 

如果你在模板中使用了 “{% extends %}“ ,那么它必须是这个模板中的第一个模板 tag ,否则它就不工作

如果你需要在子模板中引用父模板中的 block 的内容,使用 “{
{ block.super }}“ 变量.这在你希望在父模板的内容之后添加一些内容时会很有用.(你不必完全覆盖父模板的内容.)

django中模板包含操作:

{% for button in buttons.object_list %}
{% endfor %}
序号 关联模块 功能按钮主键 功能按钮名称 功能按钮类型 功能按钮顺序 操作
{ { numPerPage|append:currentPage|calculatelinenum:forloop.counter }} { { button.module.module_name }} { { button.id }} { { button.button_name }} { { button.button_type }} { { button.order }} 编辑 删除
每页显示 {% include "common/select.html" %}
条,共{
{ buttons.paginator.count }}条
包含操作:

{% include "common/select.html" %}
select.html内容如下:

下面引用一篇文章介绍django中include操作:

【django】模板 include一个模板

在讲解了模板加载机制之后,我们再介绍一个利用该机制的内建模板标签: {% include %} 。该标签允许在

(模板中)包含其它的模板的内容。 标签的参数是所要包含的模板名称,可以是一个变量,也可以是用单/双引
号硬编码的字符串。 每当在多个模板中出现相同的代码时,就应该考虑是否要使用 {% include %} 来减少重
复。
下面这两个例子都包含了 nav.html 模板。这两个例子是等价的,它们证明单/双引号都是允许的。
{% include 'nav.html' %}
{% include "nav.html" %}
下面的例子包含了 includes/nav.html 模板的内容:
{% include 'includes/nav.html' %}
下面的例子包含了以变量 template_name 的值为名称的模板内容:
{% include template_name %}
和在 get_template() 中一样, 对模板的文件名进行判断时会在所调取的模板名称之前加上来自 TEMPLATE_DIRS
的模板目录。
所包含的模板执行时的 context 和包含它们的模板是一样的。 举例说,考虑下面两个模板文件:
# mypage.html
<html>
<body>
{% include "includes/nav.html" %}
<h1>{
{ title }}</h1>
</body>
</html>

# includes/nav.html
<div id="nav">
You are in: {
{ current_section }}
</div>
如果你用一个包含 current_section的上下文去渲染 mypage.html这个模板文件,这个变量将存在于它所包含
(include)的模板里,就像你想象的那样。
如果{% include %}标签指定的模板没找到,Django将会在下面两个处理方法中选择一个:
如果 DEBUG 设置为 True ,你将会在 Django 错误信息页面看到 TemplateDoesNotExist 异常。
如果 DEBUG 设置为 False ,该标签不会引发错误信息,在标签位置不显示任何东西。

转载地址:http://unxci.baihongyu.com/

你可能感兴趣的文章
JSX使用总结
查看>>
React Native(四):布局(使用Flexbox)
查看>>
React Native(七):Android双击Back键退出应用
查看>>
Android自定义apk名称、版本号自增
查看>>
adb command not found
查看>>
Xcode 启动页面禁用和显示
查看>>
【剑指offer】q50:树中结点的最近祖先
查看>>
二叉树的非递归遍历
查看>>
【leetcode】Reorder List (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Linked List Cycle (python)
查看>>
【leetcode】Candy(python)
查看>>
【leetcode】Clone Graph(python)
查看>>
【leetcode】Sum Root to leaf Numbers
查看>>
【leetcode】Pascal's Triangle II (python)
查看>>
java自定义容器排序的两种方法
查看>>
如何成为编程高手
查看>>
本科生的编程水平到底有多高
查看>>
AngularJS2中最基本的文件说明
查看>>
从头开始学习jsp(2)——jsp的基本语法
查看>>