Tornado 学习笔记
Tornado是使用Python编写的一个强大的、可扩展的Web服务器。它在处理严峻的网络流量时表现得足够强健,在创建和编写时有着足够的轻量级,能被用在大量的应用和工具中。
tornadoweb.org : 大量的例子和功能缺陷
Tornado在Github上的版本库: 细节和变更
Tornado的Google Group: 更具体的问题的咨询
1. tornado.options:从命令行中读取设置
from tornado.options import define, options define("port", default=8000, help="run on the given port", type=int)
该模块指定应用监听HTTP请求的端口。
工作流程:如果一个与define语句中同名的设置在命令行中被给出,那么它将成为全局options的一个属性。如果用户运行程序时使用了--help
选项,程序将打印出所有你定义的选项(‘port’)以及你在define函数的help参数中指定的文本。如果用户没有为这个选项指定值,则使用default的值进行代替。Tornado使用type参数进行基本的参数类型验证,当不合适的类型被给出时抛出一个异常。
2. tornado.web.RequestHandler: Tornado的请求处理函数类
内建方法:
get_argument:获取查询字符串参数,以及解析 POST
的内容
write:以一个字符串作为函数的参数,将其写入到HTTP响应中
3.
app = tornado.web.Application(handlers=[(r"/reverse/(\w+)", ReverseHandler),(r"/wrap", WrapHandler)
])
如果正则表达式中有一系列额外的括号,匹配的字符串将被按照在正则表达式中出现的顺序作为额外的参数传递进参数input中。
4. Tornado会自动地设置HTTP状态码
404 Not Found
Tornado会在HTTP请求的路径无法匹配任何RequestHandler类相对应的模式时返回404(Not Found)响应码。
400 Bad Request
如果你调用了一个没有默认值的get_argument函数,并且没有发现给定名称的参数,Tornado将自动返回一个400(Bad Request)响应码。
405 Method Not Allowed
如果传入的请求使用了RequestHandler中没有定义的HTTP方法(比如,一个POST请求,但是处理函数中只有定义了get方法),Tornado将返回一个405(Methos Not Allowed)响应码。
500 Internal Server Error
当程序遇到任何不能让其退出的错误时,Tornado将返回500(Internal Server Error)响应码。你代码中任何没有捕获的异常也会导致500响应码。
200 OK
如果响应成功,并且没有其他返回码被设置,Tornado将默认返回一个200(OK)响应码。
5. templates: 允许嵌入Python代码片段的HTML文件。
6. 模板继承: 新的模板文件的顶部放上一句{% extends "filename.html" %}
7. 一个块语句可以压缩一些当你扩展时可能想要改变的模板元素。比如,为了使用一个能够根据不同页覆写的动态header块,你可以在父模板main.html中添加如下代码:
<header>{% block header %}{% end %}
</header>
子模板放入覆写内容
转载于:https://www.cnblogs.com/raffaello1128/p/4012905.html
Tornado 学习笔记相关推荐
- tornado学习笔记day08-tornado中的异步
概述 应为epoll主要用来解决网络的并发问题,所以tornado中的异步也是主要体现在网络的IO异步上,即异步web请求 tornado.httpclient.AsyncHTTPClient tor ...
- tornado学习笔记day07-同步与异步
同步 概念 同步就是按部就班的依次执行我们的代码 进阶 但是有些情况我们有一些比较耗时的从操作,比如去别的地方拿点资源,去其他网站请求数据,去访问数据库,上传文件等等,所以这里面优点瑕疵,有小编一一道 ...
- tornado学习笔记day06-应用安全
应用安全 cookie 普通cookie 一般我们的用户表中都有啥呢 你在购物的时候,加入购物车,让你登录,那你登录之后,他怎么知道你登录了呢 token 这个值是随机的,存在cookie里面 设置 ...
- tornado学习笔记day05-访问数据库
模板## 配置模板路径 这个在之前我们已经配置好了,可以参考前面的文章 settings = {# 就像upfile就没有,你写了也白扯'template_path': os.path.join(BA ...
- tornado学习笔记day04-执行顺序
响应输出 -> write 原型 self.write()函数 源码中是这样定义的 def write(self, chunk: Union[str, bytes, dict]) -> N ...
- tornado学习笔记day03-响应输出
write: 作用: 将chunk中的数据写到输出缓冲区 利用write方法写json数据 我们自己手动序列化json的那种方式Content-Type 的属性值为text-html 而我们采用wri ...
- tornado学习笔记day02-进阶与提升
整理基础工程 请看第一天的配置文件目录,搭建了一个框架的基础目录 Application settings debug 作用 可以设置tornado是否工作在调试模式下面,默认为false,即工作在生 ...
- tornado学习笔记day01-高并发性能web框架
tornado的安装 这里我使用的是虚拟环境中的pip安装,配合清华大学镜像源安装的 pip install tornado -i https://pypi.tuna.tsinghua.edu.cn/ ...
- tornado 学习笔记15 _ServerRequestAdapter分析
继承于HTTPMessageDeletegate,是HTTPMessageDeletegate的一种实现,用于处理请求消息. 15.1 构造函数 def __init__(self, server, ...
最新文章
- (转)iPhone开发经典语录集锦
- Spring Security OAuth2 Demo -- good
- cmake教程(为什么要用cmake?)(cmake编译opencv)(就是个跨平台的编译工具Linux、windows)(很重要,必须得学)(报错解决方案)opencv编译
- wget: unable to resolve host address “mirrors.163.com” 的解决办法
- 【渝粤教育】国家开放大学2018年春季 7402-21T社会问题 参考试题
- 如何使用JavaScript中的工厂函数构建可靠的对象
- cad结构字体_AutoCAD字体选择:如何快速选中gbcbig.shx通用字体
- 《自己动手写操作系统》之 10分钟完成最小的操作系统
- 小学计算机余数在线,余数计算器-余数计算器
- svn 安装教程 TortoiseSvn
- java开源项目jeecgboot全解析
- 计算机视觉中头部姿态估计的研究综述--Head Pose Estimation in Computer Vision - A Survey
- java微信分享朋友圈_java怎么实现微信分享到朋友圈功能
- 栈(Stack)和队列(Queue)区别
- MPLS原理和配置实验
- style 标签属性 scoped 的作用和原理
- 辐射76 服务器离线维护,如果能有离线模式 完善《辐射76》的9种方法
- html封面设计图片手绘大全,一套富有创意的简约手绘插图,用于墙面装饰、明信片或小册子封面设计。手绘矢量设计元素。病媒EPS10....
- 车载诊断概念简单介绍
- HNU-电路与电子学-小班3
热门文章
- python3安装pip3-python3及pip3安装
- python 的标准库模块glob使用教程,主要为glob.glob()使用与glob.iglob()使用
- 解读分库分表中间件Sharding-JDBC
- UVa12704 - Little Masters
- 如何处理scrum中未完成的用户故事?
- PHP与Python哪个做网站产品好?
- Ubuntu 之 atom 安装以及 常用配置
- 正确理解Mysql的列索引和多列索引
- == Equals ReferenceEquals 的区别
- 关于jQuery中的offset()和position()