zoukankan      html  css  js  c++  java
  • django模板继承与包含

    可以将每个html公共的部分做成一个基本模板,其他模板继承这个基本模板,则会拥有基本模板的所有内容。

    views.py

    from django.shortcuts import render
    
    def index(request):
        context = {'username': 'zhiliao'}
        return render(request,'index.html',context=context)
    
    def company(request):
        return render(request,'company.html')
    
    def school(request):
        return render(request,'school.html')

    基本模板base.html

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <header>
        <ul>
            <li><a href="/">首页</a></li>
            <li><a href="{% url 'company' %}">公司</a></li>
            <li><a href="{% url 'school' %}">校园</a></li>
            <li>{{ username }}</li>
        </ul>
    </header>
    <div class="content">
        {% block content %}
            我是父模板中content的代码
        {% endblock %}<!--整个block块相当于是给各个子模板开的接口-->
    </div> 
    <footer>
        这是footer部分
    </footer>
    </body>
    </html>

    在父模板中,block块相当于给各个子模板开了接口,需要继承的子模板可在block块中自定义需要显示的内容。

    其他继承base.html的模板

    {% extends 'base.html' %}  <!--表示这个模板继承base.html,且必须放在最前面,由于两者在统一路径下所以是直接写的,如果不是需要注意路径问题-->
    {% block content %} <!--子模板中的所有内容必须写在block块中-->
    <p>{{ block.super }}</p><!--显示父模板中的block块中的内容-->
     这是school块自己的内容
    {% endblock %}
    <!--写在这里的内容不会被显示-->

    注意:

    1.父模板中可以有多个block块,但是不允许出现相同名称的block块

    2.在子模板中,继承父模板的语句必须放在最前面,并且需要注意路径问题

    3.子模板中自定义显示的任何内容都必须在block块中,放在其他任何地方都不会被显示

    4.可通过{{block.super}}显示父模板中block块中的内容

    显示效果

    同理,可将常用的较小的模块写成一个模板,在需要用到的时候通过{%  include 模板名称 %}来包含。

  • 相关阅读:
    前端课程体系
    原生ajax
    更加方便获取eid和fp的一种方式-通过HTML文件【京东飞天茅台1499抢购】
    已解决No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
    前端如何封装一个组件?怎么造轮子?手写js封装一个dialog弹窗组件。
    Zookeeper集群介绍及其搭建
    重装系统后软件安装 ----一直更新
    ubantu环境下fidder安装
    HDU1281: 棋盘游戏(二分图匹配)
    HDU1083 :Courses(二分图匹配)
  • 原文地址:https://www.cnblogs.com/Forever77/p/10133922.html
Copyright © 2011-2022 走看看