时间:2021-05-22
其实就是利用{% block xxx %} {% endblock %}的方式定义一个块,相当于占位。存放在某个html中,比如base.html
然后在需要实现这些块的文件中,使用继承{% extends "base.html" %}的方式引入母板文件,然后在{% block xxx %}......{% endblock %}块定义中实现具体的内容。
base.html示例:注意块的定义。
<!DOCTYPE html><html lang="zh-CN"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <!-- 上述3个meta标签*必须*放在最前面,任何其他内容都*必须*跟随其后! --> <meta name="description" content=""> <meta name="author" content=""> <link rel="icon" href="http://v3.bootcss.com/favicon.ico" rel="external nofollow" > <link rel="stylesheet" href="https://cdn.bootcss.com/font-awesome/4.7.0/css/font-awesome.css" rel="external nofollow" > <title>所有的书都在这里</title> {% block page_css %} {% endblock %} {% block page_js %} {% endblock %} <!-- Bootstrap core CSS --> <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="external nofollow" rel="stylesheet"> <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> <link href="http://v3.bootcss.com/assets/css/ie10-viewport-bug-workaround.css" rel="external nofollow" rel="stylesheet"> <!-- Custom styles for this template --> <link href="http://v3.bootcss.com/examples/dashboard/dashboard.css" rel="external nofollow" rel="stylesheet"> <!-- Just for debugging purposes. Don't actually copy these 2 lines! --> <!--[if lt IE 9]><script src="http://v3.bootcss.com/assets/js/ie8-responsive-file-warning.js"></script><![endif]--> <script src="http://v3.bootcss.com/assets/js/ie-emulation-modes-warning.js"></script> <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries --> <!--[if lt IE 9]> <script src="https://cdn.bootcss.com/html5shiv/3.7.3/html5shiv.min.js"></script> <script src="https://cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> <![endif]--></head><body>{% include "nav.html" %}<div class="container-fluid"> <div class="row"> <div class="col-sm-3 col-md-2 sidebar"> <ul class="nav nav-sidebar"> <li class="{% block book_class %}{% endblock %}"><a href="/book_list/" rel="external nofollow" >所有的书 <span class="sr-only">(current)</span></a> </li> <li class="{% block publisher_class %}{% endblock %}"><a href="/publisher_list/" rel="external nofollow" >出版社</a></li> <li class="{% block author_class %}{% endblock %}"><a href="/author_list/" rel="external nofollow" >作者</a></li> </ul> </div> <div class="col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main"> {% block main_body %} {#这里是每个页面不同的部分#} {% endblock %} </div> </div></div><!-- Bootstrap core JavaScript================================================== --><!-- Placed at the end of the document so the pages load faster --><script src="https://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><script>window.jQuery || document.write('<script src="http://v3.bootcss.com/assets/js/vendor/jquery.min.js"><\/script>')</script><script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js"></script><!-- Just to make our placeholder images work. Don't actually copy the next line! --><script src="http://v3.bootcss.com/assets/js/vendor/holder.min.js"></script><!-- IE10 viewport hack for Surface/desktop Windows 8 bug --><script src="http://v3.bootcss.com/assets/js/ie10-viewport-bug-workaround.js"></script></body></html>某个继承页:
{# 继承母板 #}{% extends 'base.html' %}{% block book_class %} active{% endblock %}{% block page_css %} {% load static %} <link rel="stylesheet" href="{% get_static_prefix %}book_list_only.css" rel="external nofollow" >{% endblock %}{#把自己页面的内容,填入母板里面相应的位置#}{% block main_body %} <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">我是自定义内容,用来替换母板中指定的位置</h3> </div> <div class="panel-body"> <div class="row"> <div class="col-md-8"> </div> <div class="col-md-4"><a href="/add_book/" rel="external nofollow" rel="external nofollow" class="btn btn-primary"><i class="fa fa-plus-square"></i> 添加新书</a> <a href="/add_publisher/" rel="external nofollow" rel="external nofollow" class="btn btn-success"><i class="fa fa-plus-square"></i> 添加出版社</a></div> </div> <table class="table table-dark table-hover"> <thead> <tr> <th>#</th> <th>id</th> <th>名称</th> <th>出版社</th> <th>操作</th> </tr> </thead> <tbody> {% for b in books %} <tr> <td>{{ forloop.counter }}</td> <td>{{ b.id }}</td> <td>{{ b.title }}</td> <td>{{ b.publisher.name }}</td> <td> <a href="/del_book/?id={{ b.id }}" rel="external nofollow" class="btn btn-danger"><i class="fa fa-trash fa-fw"></i>删除</a> <a href="/edit_book/?id={{ b.id }}" rel="external nofollow" class="btn btn-info"><i class="fa fa-pencil fa-fw"></i>编辑</a> </td> </tr> {% endfor %} </tbody> </table> </div> </div>{% endblock %}另一个继承页:
{% extends "base.html" %}{% block main_body %} <div class="panel panel-primary"> <div class="panel-heading"> <h3 class="panel-title">所有的出版社</h3> </div> <div class="panel-body"> <div class="row"> <div class="col-md-8"> </div> <div class="col-md-4"><a href="/add_book/" rel="external nofollow" rel="external nofollow" class="btn btn-primary"><i class="fa fa-plus-circle fa-fw"></i>添加新书</a> <a href="/add_publisher/" rel="external nofollow" rel="external nofollow" class="btn btn-success"><i class="fa fa-plus-circle fa-fw"></i>添加出版社</a></div> </div> <table class="table table-dark table-hover"> <thead> <tr> <th>#</th> <th>id</th> <th>名称</th> <th>地址</th> <th>操作</th> </tr> </thead> <tbody> {% for p in publisher %} <tr> <td>{{ forloop.counter }}</td> <td>{{ p.id }}</td> <td>{{ p.name }}</td> <td>{{ p.addr }}</td> <td> <a href="/del_publisher/?id={{ p.id }}" rel="external nofollow" class="btn btn-danger"><i class="fa fa-remove fa-fw"></i>删除</a> <a href="/edit_publisher/?id={{ p.id }}" rel="external nofollow" class="btn btn-info"><i class="fa fa-edit fa-fw"></i>编辑</a> </td> </tr> {% endfor %} </tbody> </table> </div> </div> {% endblock %}{% block publisher_class %} active{% endblock %}完整的练习项目代码:day63_base_jb51.rar
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
[目录]扯淡吹逼之开发前奏Django开发环境搭建及配置Bootstrap前端页面开发Djangoapp开发Django站点管理Python简易爬虫开发Ngin
Python之Web框架Django项目搭建全过程IDE说明:Win7系统Python:3.5Django:1.10Pymysql:0.7.10Mysql:5.
AxureRP8设计软件可以利用母板设计不同的菜单,可以在母板基础上创建子母板。场景:添加一个图片元件,再利用矩形设置不同的主题,作为系统页面的头部。下面利用母
Python通过pip安装Django详细介绍经过前面的Python包管理工具的学习,接下来我们就要基于前面的知识,来配置Django的开发与运行环境。首先是安
本文主要对Django美化插件做一个简单介绍,具体如下。DjangoSuit效果使用前django页面使用后django页面安装官方文档http://djang