Tornado介绍和基本操作方法

什么是Tornado

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

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

初识Tornado

创建web应用对象,并进行配置。
定义实现路由映射列表中的handler类。
创建服务器实例,绑定服务器端口。
启动当前线程的IOLoop,监听端口。
发送get / post请求。

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”]

路由列表

[
        (r"/", Handler1),
        (r"/path", Handler2, {“p1":“v1"}),
        url(r"/path2", Handler3, 
	{“p1":“v1"}, 
	name=“xxx_xxx")
    ]

获取初始化参数列表
添加url到路由列表,根据name反向解析路径

解析客户端的请求

解析请求路径 ...../xxx/yyy
未命名式获取 …/(正则1)/(正则2)
命名式获取 …/(?P<name1>正则1)/(?P<name2>正则2)
获取get方式请求参数 

获取post方式请求参数

解析请求头request header
解析特殊请求体(json,图片)

RequestHandler.request对象

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

host 被请求的主机名;

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

path 请求的路径部分;

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

version 使用的HTTP版本;

headers 请求的协议头,是类似字典的对象,支持关键字索引的方式获取特定	协议头信息,例如:request.headers[“Content-
Type”],也可以用get的方	式获取指定特定协议头信息;
body 请求体数据(二进制格式);
remote_ip 客户端的IP地址;
files 用户上传的文件,为字典类型

响应内容的输出

write方法将响应的内容写入到缓冲区。当请求方法执行结束的时候,一次性	将缓冲区的内容返回给客户端。
字符串:write(’hello world!’)	
设定状态码 set_status
抛出错误

send_error

write_error
设定响应头
set_headers
set_default_headers
Json:输出json.dumps(字典)
 	   直接输出字典
界面跳转	

方法调用顺序

set_defautl_headers()
initialize()
get / post
(set_default_headers()
 write_error)
on_finish()

模板

不使用模板提交用户数据
手写各种HTML标签作为服务器的响应内容
设定模板路径
template-path = ‘’存放模板的文件夹‘’
template-path = “join(dirname(__file__),存放模板的文件夹)”
使用模板
渲染预置好的HTML文件:login.html,blog.html

模板的基本语法

变量
表达式
函数和自定义函数
控制语句
{% if ... %} ... {% elif ... %} ... {% else ... %} ... {% end %}
    {% for ... in ... %} ... {% end %}

模板的其它用法

静态资源
static_path=“存放静态资源的文件夹”
static_path= join(dirname(__file__),”存放静态资源的文件夹”)
静态资源的使用(img的src,导入外部js,css)块
基础HTML,用{%block name%}…{%end%}标识可替换区域
继承基础HTML,选择需要替换的{%block name%}渲染
UI模块

转义

对可能模板中的< >等内容进行转义,防止潜在的恶意代码
关闭转义
全局关闭
全页面关闭
个别关闭
Chrome的特别安全机制(X-XSS-Protection)
个别开启转义
posted @ 2018-11-11 19:02  IndustriousHe  阅读(1297)  评论(0编辑  收藏  举报