tornado框架基本页面

1.后端代码

import tornado.ioloop
import tornado.web  # web应用api
from utils import ui_methods, ui_modules

# 定义一个类,给模板使用
class People:
    def run(self):
        return '正在跑步'

    def eat(self):
        return '正在吃东西'


class MainHandler(tornado.web.RequestHandler):
    # 定义一个方法,给模板使用
    def test(self):
        return '这是一个方法'

    def get(self):
        html = '<h1>Hello World</h1>'
        data = {
            'html': html,
            'test': self.test,
            'people': People
        }
        self.render('index.html', **data)


def make_app():
    return tornado.web.Application([  # tornado配置,静态文件等
        (r"/", MainHandler),  # 配置路由

    ],
        debug=True,
        autoescape=None,  # 所有html模板都是取消转义
        static_path='../static',  # 配置静态文件路径
        template_path='../template',  # 配置模板路径
        ui_methods=ui_methods,  # 注册自定义方法
        ui_modules=ui_modules,  # 注册自定义模板
    )


if __name__ == "__main__":  # 只有在当前文件运行的时候才会执行
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()  # 开启tornado服务
    

2.HTML页面

{% autoescape None %}  <!-- 让整个html文件的标签都取消转义 -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{ html }}<br>
{{ escape(html) }}<br> <!-- 让html标签转义 -->
{% raw html %}<br> <!-- html标签取消转义 -->

{{ test() }}<br>  <!-- 使用后端的方法 -->

{% set p = people() %}  <!-- 使用后端的类,实例化 -->
{{ p.run() }}<br>
{{ p.eat() }}<br>

{{ func() }}<br>  <!-- 使用后端的方法 -->
{% module Custom() %}  <!-- 使用后端的类,实例化 -->

</body>
</html>

3.自定义模板


ui_modules.py文件:定义模板类与方法

# 用来写常用的类,给模板使用的
from tornado.web import UIModule


class Custom(UIModule):
    def embedded_css(self):  # 嵌入式css样式
        return "h1{color:pink}"

    def css_files(self):
        return 'css静态文件'

    def embedded_javascript(self):  # 嵌入javascript代码
        return "alert(123)"

    def javascript_files(self):
        return 'javascript静态文件'

    def render(self,*args,**kwargs):
        # return "<h1>返回内容</h1>"  # 不设置转译是什么东西直接输出
        return self.render_string('404.html')  # 也可以返回一个页面

ui_methods.py文件:自定义方法

# 用来写常用的函数,给模板使用的

def func(self):
    return '这是一个常用的方法'

4.运行效果图

 

posted @ 2020-05-10 17:34  不会飞的鲨鱼  阅读(349)  评论(0编辑  收藏  举报