Django 模板继承 (extend) 笔记
2017-10-26 21:49
633 查看
通过从下面这个例子,可以容易的理解模版继承:
base.html模板:它定义了一个简单HTML骨架。“子模版”的工作是“填充空的或者覆盖“
base.html里的blocks。
注意:
如果你在模版中使用 {% extends %} 标签,它必须是模版中的第一个标签。其他的任何情况下,模版继承都将无法工作。
子模版:
在这个例子中,
子模版可能会覆盖掉模版中的这些位置。
子模版经过渲染后是这样的:
base.html模板:它定义了一个简单HTML骨架。“子模版”的工作是“填充空的或者覆盖“
base.html里的blocks。
<!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="style.css" /> <title>{% block title %}My amazing site{% endblock %}</title> -------设置默认内容(My amazing site) </head> <body> <div id="sidebar"> {% block sidebar %} <ul> <li><a href="/">Home</a></li> <li><a href="/blog/">Blog</a></li> </ul> {% endblock %} </div> <div id="content"> {% block content %}{% endblock %} -------为block设置名字:content </div> </body> </html>
注意:
如果你在模版中使用 {% extends %} 标签,它必须是模版中的第一个标签。其他的任何情况下,模版继承都将无法工作。
{{ block.super content}} -------保留继承下来的内容,然后追加你的内容
子模版:
在这个例子中,
block标签定义了三个可以被子模版内容填充的block。
block告诉模版引擎:
子模版可能会覆盖掉模版中的这些位置。
{% extends "base.html" %} ----------继承base.html模板所有内容 {% block title %}My amazing blog{% endblock %}----(My amazing blog)覆盖base.html(My amazing site) {% block content %} {% for entry in blog_entries %} <h2>{{ entry.title }}</h2> <p>{{ entry.body }}</p> {% endfor %} {% endblock %}
子模版经过渲染后是这样的:
<!DOCTYPE html> <html lang="en"> <head> <link rel="stylesheet" href="style.css" /> <title>My amazing blog</title>-------修改后 </head> <body> <div id="sidebar">-------继承下来的内容 <ul> <li><a href="/">Home</a></li> <li><a href="/blog/">Blog</a></li> </ul> </div> <div id="content">-------修改后 <h2>Entry one</h2> <p>This is my first entry.</p> <h2>Entry two</h2> <p>This is my second entry.</p> </div> </body> </html>
相关文章推荐
- django学习笔记---模板语言继承和simple_tag
- Django学习笔记2 模板继承、添加页面
- Django——模板层(template)(模板语法、自定义模板过滤器及标签、模板继承)
- Django之模板继承与ajax使用错误处理~
- 【django 学习笔记】08-模板高级进阶
- The Definitive Guide To Django 2 学习笔记(七) 第四章 模板 (三)使用模板系统
- Django 之 模板继承 及 函数应用
- 工作中Django总结之四(模板继承)
- Jinja2学习笔记之模板设计(2)——模版继承
- Django(4)html模板继承、模板导入、分页实现
- Django 模板继承extends 与 include标签
- 对比mako模板继承与Django的模板继承
- python学习笔记--Django入门二 Django 的模板系统
- Django学习笔记(5):Django模板系统(下)
- Django web框架之模板继承
- Django 学习笔记2 模板
- django 模板的继承
- Django学习笔记-模板
- Python笔记(五)--Django中使用模板
- Django Bootstrap开发笔记02 - 模板