python之django母板页面的使用

2018-10-15 17:13

阅读:499

其实就是利用{% 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=所有的书都在这里</title> {% block page_css %} {% endblock %} {% block page_js %} {% endblock %} <!-- Bootstrap core CSS --> <link href=所有的书 <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=

某个继承页:

{# 继承母板 #} {% 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>操作}}</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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。


评论


亲,登录后才可以留言!