zoukankan      html  css  js  c++  java
  • Tornado

    优势:微框架  高性能  异步支持

    缺点:轮子少  缺少最佳实践,使用的公司少。

    使用场景:构建微服务。

    简单的例子:

    import tornado.ioloop    
    import tornado.web
    
    class Mainhandler(tornado.web.RequestHandler):#类名可自定义
        def get(self):#get方法
            self.write('hello,word')#写入返回内容
    
    def make_app():
        return tornado.web.Application([(r'/',Mainhandler),])#路径由定义的类执行
    
    if __name__ == '__main__':
        app = make_app()
        app.listen(80)
        tornado.ioloop.IOLoop.current().start()

    使用tornado的模板渲染功能

    class Px_web(tornado.web.RequestHandler):#类名自定
    
        def get(self):#get方法
            self.render('base.html')#返回base模板
    
    
    def make_app():
        return tornado.web.Application(
            [
                (r'/',Px_web),
            ],
            template_path = os.path.join(os.path.dirname(__file__),'template')#设置模板路径template_path变量固定写法
        )
    
    if __name__ == '__main__':
        app = make_app()
        app.listen(80)
        tornado.ioloop.PollIOLoop.current().start()
    

      

    tornado变量传值

    html页面

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    <h1>{{message}}</h1>
    </body>
    </html>
    

    后端写class Px_web(tornado.web.RequestHandler):    def get(self):

            self.render('base.html',message='hello')#在这传
    
    
    def make_app():
        return tornado.web.Application(
            [
                (r'/',Px_web),
            ],
            template_path = os.path.join(os.path.dirname(__file__),'template')
        )
    
    if __name__ == '__main__':
        app = make_app()
        app.listen(80)
        tornado.ioloop.PollIOLoop.current().start()


     

    tornado的异步使用

    # -*- coding: utf-8 -*-
    __author__ = 'Px'
    
    import time
    from tornado import gen
    import tornado.web
    import tornado.ioloop
    import datetime
    import tornado.httpserver
    import sys
    reload(sys)
    sys.setdefaultencoding('utf8')
    
    class sleephand(tornado.web.RequestHandler):
        @gen.coroutine   
        def get(self):
            yield tornado.gen.sleep(3)
            self.write(str(datetime.datetime.now()))
    def make_app():
        return tornado.web.Application(
                [(r'/',sleephand),
                 ]
        )
    
    if __name__ == '__main__':
        app = make_app()
        httpserver = tornado.httpserver.HTTPServer(app)
        httpserver.listen(80)
        tornado.ioloop.IOLoop.instance().start()
    

      

  • 相关阅读:
    常用排序算法及java语言实现
    机器学习实战笔记(python3实现)01--概述
    笔试错题--(字符串常量池和JVM运行时数据区)
    笔试错题(典型题)
    java进阶--java网络编程
    01_Java基础_第1天(Java概述、环境变量、注释、关键字、标识符、常量)
    数据库3(DBUtils)
    数据库2(JDBC、DBUtils)
    数据库1(数据库、表及表数据、SQL语句)
    Linux的基本命令
  • 原文地址:https://www.cnblogs.com/pxfb/p/10331206.html
Copyright © 2011-2022 走看看