Tornado(1)

Tornado

1,概念:

  Tornado全称Tornado Web Server,是一个用Python语言写成的Web服务器兼Web应用框架。

  Tornado走的是少而精的方向,注重的是性能优越,它最出名的是异步非阻塞的设计方式。

2,初识Tornado

  (1)创建web应用对象,并进行配置。

  (2)定义实现路由映射列表中的handler类。

  (3)创建服务器实例,绑定服务器端口。

  (4)启动当前线程的IOLoop,监听端口。

  (5)发送get / post请求。

3,options模块

  利用tornado.options模块进行全局参数的定义;

  define():用来定义options选项变量的方法

    参数:name:选项变量名,须保证全局唯一性;

         default:选项变量的默认值,默认为None;

         type:选项变量的类型。可以是str、float、int、datetime、timedelta中的某个。

         multiple:选项变量的值是否可以为多个,默认值为False。multiple为True,那么选项变量是一个list列表值与值之间用逗号分隔。

        help:选项变量的帮助提示信息,默认为None;

 

  options的传值和使用:

    从配置文件中读取参数 parse_config_file(path)

      p1 = v1  或  p2 =[“v1”,”v2”,”v3”]

4,路由列表

  [

    (r"/", Handler1),

    (r"/path", Handler2, {“p1":“v1"}),

    url(r"/path2", Handler3,{“p1":“v1"}, name=“xxx_xxx") ,

        ]

  (1)获取初始化参数列表;

  (2)添加url到路由列表,根据name反向解析路径;

5,解析客户端的请求:

  (1)解析请求路径 ...../xxx/yyy

    - 未命名式获取 …/(正则1)/(正则2)

      -  命名式获取 …/(?P<name1>正则1)/(?P<name2>正则2) 

  (2)获取get方式请求参数 

  (3)获取post方式请求参数 

  (4)解析请求头request header

  (5)解析特殊请求体(json,图片)

6,RequestHander.request对象

  (1)method HTTP的请求方式,如GET或POST;

  (2)host 被请求的主机名;

  (3)uri 请求的完整资源标示,包括路径和查询字符串;

  (4)path 请求的路径部分;

  (5)query 请求的查询字符串部分;

  (6)version 使用的HTTP版本;

  (7)headers 请求的协议头,是类似字典的对象,支持关键字索引的方式获取特定协议头信息,例如:request.headers[“Content-Type”],也可以用get的方式获取指定特定协议头信息;

  (8)body 请求体数据(二进制格式);

  (9)remote_ip 客户端的IP地址;

  (10)files 用户上传的文件,为字典类型

7,请求头和一些请求体中获得的内容

  所有请求头:request.headers 

  Json: request.headers.get(“Content-Type”,””) 

      request.body()

  文件:  

    {"form_filename1":[<tornado.httputil.HTTPFile>, <tornado.httputil.HTTPFile>]}

    因为支持多文件上传,所以一个form_filename1对应多个HTTPFile对象;

    tornado.httputil.HTTPFile是接收到的文件对象,它有三个属性:

    <1> filename 文件的实际名字;

    <2> body 文件的数据实体

    <3> content_type 文件的类型。

    这三个对象属性可以像字典一样支持关键字索引,如httpFile1[“body”],获取第一个上传文件的具体数据。

 

posted on 2019-05-20 09:50  微子天明  阅读(130)  评论(0编辑  收藏  举报

导航