一、模板继承

  • 模板继承可以减少页面内容的重复定义,实现页面内容的重用
  • 典型应用:网站的头部、尾部是一样的,这些内容可以定义在父模板中,子模板不需要重复定义
  • block标签:在父模板中预留区域,在子模板中填充
  • extends继承:继承,写在模板文件的第一行
  • 定义父模板base.html

步骤:

  1.  把公共的HTML部分提取到一个base.html中,构建一个基本的HTML“骨架”

  2.  在母板中,通过定义block块,告诉模块引擎子模块可以覆盖母板的哪些部分。

  3. 在子模板的首行使用{% extend 'base.html' %}指定继承自哪个母板

  4. 在子模板中使用和母板中相同的block,来覆盖母板中指定的位置

代码:

<!DOCTYPE html>
<html lang="en">
<head>
<link rel="stylesheet" href="style.css" />
<title>{% block title %}My amazing site{% endblock %}</title>
</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 %}
</div>
</body>
</html>

母板

{% extends "base.html" %}

{% block title %}My amazing blog{% endblock %}

{% block content %}
{% for entry in blog_entries %}
<h2>{{ entry.title }}</h2>
<p>{{ entry.body }}</p>
{% endfor %}
{% endblock %}

子模板

二、包含

include:在模板中“包含”其他模板的一种方式。模板名称可以是变量,也可以是单引号或双引号的硬编码(带引号)的字符串。

此示例包含模板的内容"foo/bar.html"

{% include "foo/bar.html" %}

通常,模板名称是相对于模板加载程序的根目录。一个字符串参数也可以是一个 以标签开始./或者../extends标签所描述的相对路径。

此示例包含名称包含在变量中的模板的内容template_name

{% include template_name %}

三、静态文件配置

  • 项目中的CSS、图片、js都是静态文件
  • 配置静态文件

    • 在settings 文件中定义静态内容
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR, 'static'),
]
  • 在项目根目录下创建static目录,再创建当前应用名称的目录
mysite/static/myapp/
  • 在模板中可以使用硬编码
/static/my_app/myexample.jpg
  • 在模板中可以使用static编码
{ % load static from staticfiles %}
<img src="{ % static "my_app/myexample.jpg" %}" alt="My image"/>

最新文章

  1. JavaScript 跨域漫游
  2. 【Session】Tomcat中Session的外置
  3. Javascript类型
  4. 理解js中的自由变量以及作用域的进阶
  5. Python文件操作详解
  6. Off-heap Memory in Apache Flink and the curious JIT compiler
  7. android studio 真机调试
  8. unity3d 场景间数据传递
  9. 用C#操作文件/文件夹(删除,复制,移动)
  10. java从pdf中提取文本
  11. C# Winform 对话框控件&amp;简单记事本
  12. Struts2_API
  13. intellij 自动导包
  14. JavaStudy——Java之自动拆箱与自动装箱
  15. Android开发中同时存在多个ListView的处理
  16. C#中读写INI文件
  17. JAVA记录-生成jar包方法
  18. XMLHttpRequest: 网络错误 0x2f78,…00002f78
  19. Mysql 双主架构配置从复制
  20. SQL Server 索引结构及其使用(二)

热门文章

  1. 【刷题】BZOJ 2959 长跑
  2. C#基础-如何找到devenv的路径位置
  3. 洛谷 P2731 骑马修栅栏 Riding the Fences 解题报告
  4. bzoj 4521: [Cqoi2016]手机号码
  5. 图解HTTP(六)HTTP首部
  6. hdu 3068
  7. HDU 3271 数位dp+二分
  8. Docker入门与应用系列(四)网络管理
  9. golang 中的 time 包的 Ticker
  10. Java基础-Collection子接口之List接口