Django Template继承

Templates继承可实现模板复用,公用区域统一配置,减少代码量,更容易更新和维护。

template-inheritance

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>

创建了headcontent标签,以{% 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中的(红色框中)实现内容也已加载:

examl_html.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容