web框架--tornado框架之模板引擎继承

使用模板的继承可以重复使用相同结构的模板, 可以大大减少代码量

入门实例

一、demo目录结构

web框架--tornado框架之模板引擎继承_第1张图片

注解:

master.html为模板内容,被index.html,account.html引用

 

二、各文件代码

2.1、master.html

 1 
 2 "en">
 3 
 4     "UTF-8">
 5     Master
 6     
24 
25 
26 
27     
class="page-header">
28
class="page-content"> 29 30 {% block tm_content %} 31 {% end %} 32
33
class="page-footer">
34 35 {% block tm_js %} 36 {% end %} 37 38 39 {% block tm_css %} 40 {% end %} 41 42

2.2、form.html

"text"/> "submit" value="提交"/>

2.3、account.html

 1 {% extends "../template/master.html" %}
 2 
 3 
 4 {% block tm_css %}
 5     
11 {% end %}
12 
13 
14 {% block tm_content %}
15     

这是我的account

16 {% end %} 17 18 19 {% block tm_js %} 20 23 {% end %}

2.4、index.html

{% extends "../template/master.html"%}


{% block tm_css %}
    
{% end %}


{% block tm_content %}
    

这是系统的首页

{%include "../include/form.html" %} {%include "../include/form.html" %} {% end %} {% block tm_js %} {% end %}

2.5、start.py

 1 #!/usr/bin/env python
 2 # -*- coding: utf-8 -*-
 3 # @Time    : 2019/12/5 23:41
 4 # @Author  : yusheng_liang
 5 # @Site    : 
 6 # @File    : start.py
 7 import tornado.web
 8 import tornado.ioloop
 9 
10 class IndexHandle(tornado.web.RequestHandler):
11     def get(self, *args, **kwargs):
12         self.render("extend/index.html")
13 
14 class AccountHandle(tornado.web.RequestHandler):
15     def get(self, *args, **kwargs):
16         self.render("extend/account.html")
17 
18 if __name__ == "__main__":
19     CONTENTS_LIST = []
20     settings = {
21         'template_path': 'views',
22     }
23 
24     application = tornado.web.Application([
25         (r"/index", IndexHandle),
26         (r"/account", AccountHandle),
27     ], **settings)
28 
29     application.listen(80)
30     tornado.ioloop.IOLoop.instance().start()

三、demo效果示例

3.1、http://127.0.0.1/index

web框架--tornado框架之模板引擎继承_第2张图片

3.2、http://127.0.0.1/account

web框架--tornado框架之模板引擎继承_第3张图片

详解分析

  • 从运行结果来看, 两个网页的主体结构相同, 只是里边包含的css具体样式, 具体内容以及js文件不同
  • 要继承模板文件来使用我们要在当前文件首行写上{%extends "../template/master.html"%} , 这里表示当前文件以master.html来进行渲染
  • master.html文件中{%block tm_css%}{%end%}相当与为后面具体要写入的内容做一个占位符, 并且起名为tm_css

 

 

 

 

 

你可能感兴趣的:(web框架--tornado框架之模板引擎继承)