09-01 01—05

______egon新书python全套来袭请看:https://egonlin.com/book.html

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-22 22:04  小猿取经-林海峰老师  阅读(514)  评论(0编辑  收藏  举报