-
tornado是用python写的,非阻塞的服务器
-
编写各种api,进行服务器的请求处理(大致流程如下)
-
'有序'正则匹配到对应的handler,如有分组匹配,作为参数传入
-
继承tornado.web.RequestHandler
-
initialize 一般把传入参数存到成员变量中
-
prepare 不论调用何种http方法,都会被调用,一般写在父类中;如果调用finish(),send_error()等,则改handler处理结束
-
实现post/get等http方法,可在一个handler中实现多种方法;write方法写入报文中,render渲染页
响应流程:
一般socket 编程分三步: create-bind-listen
create-bind 在httpserver.listen(port)完成?
listen 在 isloop中完成
httpserver 接收请求并封装成request对象,传给 application
application 完成路由分发,实例handler
handler完成具体的请求处理
坑:
- tornado模板渲染,不能渲染引入的js文件中的{{}}/{%%}等定义
- url中如果写入正则捕获,则会传入相应handler中
问题:
- from tornado.options import options, define ; 项目代码中的脚本,必须define一个参数,才能把环境变量中的define引入?
WSGI(web service gateway interface|网络服务网关接口)
- 一个python协议,基于CGI协议?
- 为了连接service和应用,其实就是为了统一处理http请求接口
- 协议很简单