【tornado】9.模板

配置模板路径

在config.py的settings中配置templates_path:

import os
BASE_DIR=os.path.dirname(__file__)

# 参数
options={
    "port":6578
}

# 配置
settings={
    "debug":False,
    "static_path":os.path.join(BASE_DIR,"static"),
    "template_path":os.path.join(BASE_DIR,"templates")
}

渲染并返回给客户端

渲染就是向客户端显示一个html页面:

self.render("xxx.html")

变量与表达式

增加一个渲染的页面路由render:

from views.index import IndexHandler,HomeHandler,RenderHandler
import tornado.web
import config

class Application(tornado.web.Application):
    def __init__(self):
        handlers=[
            (r'/',IndexHandler),
            (r'/home',HomeHandler),
            (r'/render',RenderHandler)
        ]
        super(Application,self).__init__(handlers,**config.settings)

编写一下render的页面代码RenderHandler:

class RenderHandler(RequestHandler):
    def get(self, *args, **kwargs):
        tmp=100
        per={
            "name":"user",
            "height":175
        }
        self.render("render.html",num=tmp,per=per)

这里我们定义了一个变量tmp,设它的值为100
然后定义了一个字典,包含一个人的名字和身高
将这两个变量传到render.html的页面中,其中render.html的页面代码为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>render file</title>
</head>
<body>
这是一个渲染页面<br>
这里有一个页面传递过来的变量值:num={{num}}<br>
num的值再加10的话就是:{{num+10}}<br>
这个人的名字是:{{per["name"]}}

</body>
</html>

在浏览器中输入: http://localhost:6578/render 显示为:
在这里插入图片描述



流程控制

主要涉及到if for while语句的使用,首先添加一下流程控制的页面处理类:

class FlowControlHandler(RequestHandler):
    def get(self, *args, **kwargs):
        flag=1
        persons=[
            {"name":"A","hobby":"hobby1"},
            {"name":"B","hobby":"hobby2"}
        ]
        self.render("render.html",flag=flag,persons=persons)

将参数flag和persons传入到render.html页面中,render.html的代码为:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>render file</title>
</head>
<body>
if控制语句:
{%if flag==1%}
sentence1
{%end%}
<br>

control控制语句:
<ul>
{%for per in persons%}
    <li>{{per['name']}}</li>
{%end%}
</ul>
<br>
</body>
</html>

在浏览器中输入:http://localhost:6578/render 运行的结果为:
在这里插入图片描述



函数

static_url:用于加载css和js文件
自定义函数

转义

“autoescape”:None   关闭当前项目的自动转义
escape()函数:在关闭当前项目的自动转义时,对特定变量进行转义

继承

静态文件

static_path:
静态文件目录

StaticFileHandler:
提供静态资源

猜你喜欢

转载自blog.csdn.net/AXIMI/article/details/86313195