09 tornado

  1. tornado 中的 gen.coroutine 的作用?

    # tornado的coroutine装饰器,使得回调函数可以用同步的方式实现,极大提高了代码的可读性。它的实现涉及到了yield,ioloop和Future的模块。
  2. 简述 tornado 框架特点及应用场景。

    # web聊天室,在线投票等操作!
  3. tornado 框架中 Future 对象的作用?

    # 实现异步非阻塞
    视图函数yield一个futrue对象,futrue对象默认:
        self._done = False   ,请求未完成
        self._result = None  ,请求完成后返回值,用于传递给回调函数使用。
    
    tornado就会一直去检测futrue对象的_done是否已经变成True。
    
    如果IO请求执行完毕,自动会调用future的set_result方法:
                self._result = result
                self._done = True
  4. tornado 框架中如何编写 webSocket 程序?

    Tornado在websocket模块中提供了一个WebSocketHandler类。
    这个类提供了和已连接的客户端通信的WebSocket事件和方法的钩子。
    当一个新的WebSocket连接打开时,open方法被调用,
    而on_message和on_close方法,分别在连接、接收到新的消息和客户端关闭时被调用。
    
    此外,WebSocketHandler类还提供了write_message方法用于向客户端发送消息,close方法用于关闭连接。
  5. tornado 中静态文件是如何处理的?

    如:

    # settings.py
    settings = {
        "static_path": os.path.join(os.path.dirname(__file__), "static"),
       # 指定了静态文件的位置在当前目录中的"static"目录下
        "cookie_secret": "61oETzKXQAGaYdkL5gEmGeJJFuYh7EQnp2XdTP1o/Vo=",
        "login_url": "/login",
        "xsrf_cookies": True,
    }
    
    经上面配置后
    static_url()自动去配置的路径下找'commons.css'文件
posted @ 2019-10-17 00:43  suwanbin_thought  阅读(73)  评论(0编辑  收藏  举报