zoukankan      html  css  js  c++  java
  • tornado 初解

      对于使用习惯Django的我来说,tornado实在是很简陋,没有那么多复杂的文件分类。

    在tornado中,一个简单web只需要十几行简单的代码就OK了

    import tornado.web
    import tornado.ioloop
    
    
    class IndexHandler(tornado.web.RequestHandler):
    
        def get(self, *args, **kwargs):
            self.write("hello")
    
    
    settings = {}
    app = tornado.web.Application([
        ('/index', IndexHandler),
    ], **settings)
    
    if __name__ == "__main__":
        app.listen('8888')
        tornado.ioloop.IOLoop.instance().start()

    看见莫有,简单吧。。。

      一个app做路由映射,一个class作为逻辑处理(对应映射的逻辑处理),通过tornado的IOLoop启动web服务。还有就是一些默认路劲的配置,写在settings中就可以了。例如: settings = {"template_path": 'views'}

      注意1:在类的get方法中,不用写return,如果self.write()后面还有代码的话,它还会继续往下执行,如果不需要执行的话,那就使用return就行,就不会继续往下执行了。在tornado中三个返回的方法 write,render,redirect分别对应Django的HTTPResponse,render,redirect

      注意2:如果render返回了参数,在模板中与Django一样用{{  }}获取参数,但是tornado如果模板中使用的参数调用的话,在后端逻辑必须返回那个参数,否则就会报错。Django不一样,后端没有返回,前端调用不会出错。

      在逻辑类里面,get()对应get请求,post对应post请求,通过使用

    self.get_cookie() # 获取cookies     tornado中没有session,可以通过cookie保存信息
    self.get_argument() # 获取请求参数
    。。。。

    注意3:在设置cookie时如果是加密的,那么需要在settings中配置'cookie_secret': 'ahsfkasjasfasd', 而且设置cookie,必须在使用write,render,redirect之前,否则不能设置上cookie
  • 相关阅读:
    九宫格拼图 支持44 55等
    js 怎样获取div 图片等的宽度,只要值,不要px
    spring boot单元测试之RestTemplate(一)
    java设计模式-原型(prototype)
    Hibernate注解(二):关联关系映射注解
    spring之@value详解二(转载)
    spring之@Value详解(转载)
    Spring之基于注解的注入
    Spring之bean生命始末
    Spring之bean后处理器
  • 原文地址:https://www.cnblogs.com/wbdream/p/10544412.html
Copyright © 2011-2022 走看看