其實就是利用{% 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" rel="external nofollow" > <link rel="stylesheet" rel="external nofollow" > <title>所有的書都在這里</title> {% block page_css %} {% endblock %} {% block page_js %} {% endblock %} <!-- Bootstrap core CSS --> <link rel="external nofollow" rel="stylesheet"> <!-- IE10 viewport hack for Surface/desktop Windows 8 bug --> <link rel="external nofollow" rel="stylesheet"> <!-- Custom styles for this template --> <link 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>
新聞熱點
疑難解答