第二百六十节,Tornado框架-内置模板方法

Tornado框架-内置模板方法

直接在html文件使用,不需要传值

Tornado默认提供的这些功能其实本质上就是 UIMethod 和 UIModule,也就是Tornado框架定义好的html文件可调用函数及字段,直接在html文件调用即可

在模板中默认提供了一些函数、字段、类以供模板使用:

转义功能
escape: tornado.escape.xhtml_escape 的別名
xhtml_escape: tornado.escape.xhtml_escape 的別名
url_escape: tornado.escape.url_escape 的別名

json处理
json_encode: tornado.escape.json_encode 的別名

squeeze: tornado.escape.squeeze 的別名

生成a标签
linkify: tornado.escape.linkify 的別名

就是python的datetime模块
datetime: Python 的 datetime 模组

handler: 当前的 RequestHandler 对象

注意一下handler代指的RequestHandler逻辑处理对象也就是self

封装的request信息,包含用户访问的请求信息
request: handler.request 的別名

 框架引擎不用传参,html直接调用即可

#!/usr/bin/env python
#coding:utf-8

import tornado.ioloop
import tornado.web                              #导入tornado模块下的web文件
import uimodule

#逻辑处理
class MainHandler(tornado.web.RequestHandler):  #定义一个类,继承tornado.web下的RequestHandler类
    def get(self):                                              #get()方法,接收get方式请求
        self.render("cshi.html")                                #显示cshi.html文件,传值到模板语言里渲染

settings = {                                    #html文件归类配置,设置一个字典
    "template_path":"template",                 #键为template_path固定的,值为要存放HTML的文件夹名称
    "static_path":"static",                     #键为static_path固定的,值为要存放js和css的文件夹名称
    'ui_modules':uimodule,                     #配置html文件函数调用模块
}

#路由映射
application = tornado.web.Application([         #创建一个变量等于tornado.web下的Application方法
    (r"/index", MainHandler),                   #判断用户请求路径后缀是否匹配字符串index,如果匹配执行MainHandler方法
],**settings)                                   #将html文件归类配置字典,写在路由映射的第二个参数里

if __name__ == "__main__":
    #内部socket运行起来
    application.listen(8888)                    #设置端口
    tornado.ioloop.IOLoop.instance().start()

html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--注意js和css文件路径配置后必须在引入路径里加上配置文件夹名称-->
    <link rel="stylesheet" href="static/s1.css">
</head>
<body>
<p>{{request}}</p>
<h1></h1>

</body>
</html>

current_user: handler.current_user 的別名
locale: handler.locale 的別名
_: handler.locale.translate 的別名

这个最常用【重要】,在html页面调用可以自动识别逻辑处理配置的静态文件路径如css和js,并且将静态文件缓存到用户本地,连接地址将转换成静态文件的md5值
static_url: for handler.static_url 的別名

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <link rel="stylesheet" href='{{static_url("s1.css")}}'>
</head>
<body>
<h1>测试</h1>

</body>
</html>

可以防止跨站伪造,后面会讲到
xsrf_form_html: handler.xsrf_form_html 的別名

模板方法了解一下即可,大多数还是我们使用自己的自定义UIMethod 或 UIModule

原文地址:https://www.cnblogs.com/adc8868/p/6857766.html