博客
关于我
强烈建议你试试无所不能的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/

你可能感兴趣的文章
项目导入时报错:The import javax.servlet.http.HttpServletRequest cannot be resolved
查看>>
linux对于没有写权限的文件如何保存退出vim
查看>>
Windows下安装ElasticSearch6.3.1以及ElasticSearch6.3.1的Head插件
查看>>
IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结
查看>>
【IntelliJ IDEA】idea导入项目只显示项目中的文件,不显示项目结构
查看>>
ssh 如何方便的切换到其他节点??
查看>>
JSP中文乱码总结
查看>>
Java-IO-File类
查看>>
Java-IO-java的IO流
查看>>
Java-IO-输入/输出流体系
查看>>
Java实现DES加密解密
查看>>
HTML基础
查看>>
Java IO
查看>>
Java NIO
查看>>
Java大数据:Hbase分布式存储入门
查看>>
大数据学习:Spark RDD操作入门
查看>>
大数据框架:Spark 生态实时流计算
查看>>
大数据入门:Hive和Hbase区别对比
查看>>
大数据入门:ZooKeeper工作原理
查看>>
大数据入门:Zookeeper结构体系
查看>>