Templates继承可实现模板复用,公用区域统一配置,减少代码量,更容易更新和维护。
base.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Lucky Horoscope</title>
{% load static %}
<link rel="shortcut icon" href="{% static 'favicon.ico' %}">
<link rel="stylesheet" href="{% static 'css/bootstrap.css' %}">
<script type="text/javascript" src="{% static 'js/jquery-3.2.1.js' %}"></script>
{% block head %}
{% endblock head %}
</head>
<body>
{% block content %}
{% endblock %}
</body>
</html>
创建了head 和 content标签,以{% block tagName %}
开始{% endblock tagName %}
结束。
使用时就可以继承 base.html
,{% block head %} {% endblock head %}
中间可以填充head内容中,{% block content %} {% endblock %}
则可以添加html标签。
exam.html
继承base.html
{% extends 'base.html' %}
{% block head %}
{% load static %}
<link rel="stylesheet" href="{% static 'css/exam.css' %}">
{% endblock head %}
{% block content %}
<div ......>
</div>
<div id="exam_content" ......>
</div>
<form id="form" method="post">
{% csrf_token %}
<input id="options_choose" type="hidden" name="options" />
</form>
<script>
......
</script>
{% endblock %}
exam.html
加载成功后发现: base.html
中的静态资源成功加载,exam.html
中的(红色框中)实现内容也已加载: