博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tornado(三)-----template
阅读量:6614 次
发布时间:2019-06-24

本文共 2302 字,大约阅读时间需要 7 分钟。

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 Templatedef add(a, b):	return a+bTemplate("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

你可能感兴趣的文章
答客户疑问 ASP.NET C#.NET 通用权限管理系统组件源码的 B/S C/S 这里有什么区别?...
查看>>
lol win8
查看>>
使用命令安装Google
查看>>
IOS 字符串的Format可以对数值四舍五入
查看>>
jQuery简单手风琴效果(Accordion)学习总结
查看>>
PHP AES256加密算法
查看>>
thinkphp-条件判断-if标签2
查看>>
SQL-23 对所有员工的当前(to_date='9999-01-01')薪水按照salary进行按照1-N的排名,相同salary并列且按照emp_no升序排列...
查看>>
VMware ESX虚拟机中提示IP地址已经分配给其他网卡
查看>>
负载均衡集群LVS实战篇
查看>>
老吴聊IT申请入驻搜狐公众平台,特此声明
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Linux常用shell脚本
查看>>
32/64位Win7_2017.09通用多合一安装版/Ghost版
查看>>
8.Redis的复制(Master/Slave)
查看>>
普通域账户不能登录域控
查看>>
大牛博客(持续更新)
查看>>
《论语别裁》
查看>>