tornado(三)-----template

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

#tornado template 使用

官网参考

1. 配置template模块目录

在settings 中写入

'template_path':os.path.join(os.path.dirname(__file__), "templates")

2. 创建一个index.html到 templates目录下

    
    
    
        
    
    
        ......这里使用`4. index.html`中的代码
    
    

3. 在get/post等其中一个方法中添加如下

	ls=['af ','aaa ','cccc ']
    num=1
    var_dict = {'key1': 'value1', 'key2':'value2'}
    def add(a,b):
    	return a+b
    self.render('index.html', ls=ls, num=num, var_dict = var_dict, add=add)

4. index.html

   
直接显示: {{ls}}
传递数组显示:
{% for a in ls %} {{escape(a)}}
{% end %}

直接显示:{{var_dict}}
传递dict 显示:
{% for key, value in var_dict.items() %} {{key}}, {{value}}
{% end %}

传递单个值显示: {{num}}

传递方法添加:
{{add(1,2)}}

5. 总结一部分

以上是简单的template使用;归纳一下template里面的语法有:

  1. 内置表达式:{{表达式在这里}}

  2. 控制状态流:

     {%if 或者 for %}
     	... 这里是各种表达式
     {%end%}
    
  3. 在Template中使用方法, 默认所有template内置的方法有: escape(), url_escape(), json_encode(), squeeze()

    from tornado.template import Template
    def add(a, b):
    	return a+b
    Template("count is {{add(1,2)}}").generate(add=add)
    

6. 扩展Template

继承{% extends "filename.html" %}

  1. 创建一个sub.html, 清空里面的内容只输入一句话

     	{% extends "index.html" %}
    
  2. 修改 self.render('index.html', ls=ls, num=num, var_dict = var_dict)self.render('sub.html', ls=ls, num=num, var_dict = var_dict) 运行一下,发现还是可以用的,说明sub.html完全继承了index.html;这样就实现了代码重用部分了

Blocks

语法:

	{% block header %}{% end %}# 定义一个
	{% block header %}赋值在中间{% end %}# 中间赋值

其实主要作用是用来替换基模板中的一些代码块

  1. 新建一个base.html

      
     
    {% block header %}{% end %}
    {% block body %}{% end %}
    {% block footer %}{% end %}
  2. 写一个main.html

     {% extends "base.html" %}
     {% block header %}
     	

    这里是头部赋值

    {% end %} {% block body %}

    这里是body 赋值

    {% end %} {% block footer %}

    这里是footer赋值

    {% end %}

就好比在base.html中定义了一堆变量,然后在main.html中赋值一样

UIModel

  1. 继承tornado.web.UIModul

     class HelloModule(tornado.web.UIModule): 
     	def render(self):
     		return '

    Hello, world!

    '
  2. 设置Application中

     ui_modules={'Hello', HelloModule}
    

    定义一个名为Hello的modle对象

  3. 在 hello.html中使用

     
     	{% module Hello() %} 
     
    

这个就简单介绍了;

其他

  1. 设置变量

     {%set var='xxxx'%}
     # 使用
     {{var}}
    

转载于:https://my.oschina.net/jiemachina/blog/205416

你可能感兴趣的:(tornado(三)-----template)