tornado 笔记
简单比较Django和Tornado
Django是走大而全的方向,注重的是高效开发,最出名的是全自动化管理后台
Tornado走的是少而精的方向,注重的是性能的优化,最出名的是异步非堵塞
安装方式:
通用:pip3 install tornado
还以可以下载wheel安装包进行安装,windows上可以到https://www.lfd.uci.edu/~gohlke/pythonlibs/#tornado进行下载
写一个简单的程序
# 调用tornado的web处理框架
import tornado.web
import tornado.ioloop class IndexHandler(tornado.web.RequestHandler):
""" 定义路由的需要类 """
def get(self):
""" 指定get请求方式,如果使用post方式只需要def post()即可 """
self.write('hello world') # 打印内容 if __name__ == '__main__':
# 定义路由
app = tornado.web.Application([(r'/', IndexHandler)])
app.listen(8000) # 设置监听端口
tornado.ioloop.IOLoop.current().start() # 循环当前线程
tornado.ioloop.IOLoop是重点:
在系统中会使用epoll就相当是一个管家里面会进行socket()进行监听,如果有用户发送信息过来,就会访问定义的路由表,再通过路由表查找类
值得注意的是:如果同时有两个用户(socket)同时进行访问,那么会造成其中一个进行等待,当执行完成前一个的时候再执行下一个(这是tornado的优点也是缺点)
tornado 笔记的更多相关文章
- Tornado笔记
helloworld Tornado特点一句话简介:Tornado是非阻塞式的Web服务器,速度非常快,每秒可以处理数以千计的链接,因此Tornado是实时Web服务的一个理想框架.Tornado因为 ...
- tornado 学习笔记1 引言
从事软件开发这行业也快5年啦,其实从事的工作也不完全是软件开发,软件开发只是我工作中的一部分.其中包括课题研究.信息化方案设计.软件开发.信息系统监理.项目管理等工作,比较杂乱.开发的软件比较多,但是 ...
- Tornado学习笔记(一) helloword/多进程/启动参数
前言 当你觉得你过得很舒服的时候,你肯定没有在进步.所以我想学习新的东西,然后选择了Tornado.因为我觉得Tornado更匹配目前的我的综合素质. Tornado学习笔记系列主要参考<int ...
- tornado学习笔记19 Tornado框架分析
19.1 Http服务器请求处理流程图 (1) 调用HTTPServer的bind方法,绑定Socket的监听端口号: (2) 调用HTTPServer的listen方法,初始化一个listen so ...
- tornado学习笔记11 Web应用中模板(Template)使用应用实践
上一篇中(Web应用中模板的工作流程分析),已经分析了模板的渲染流程,以及相关参数获取及设置原理.这篇主要讲述模板在实际应用案例. 11.1 需求 根据用户输入的两次密码,判断两次密码是否一致,并将判 ...
- tornado 学习笔记15 _ServerRequestAdapter分析
继承于HTTPMessageDeletegate,是HTTPMessageDeletegate的一种实现,用于处理请求消息. 15.1 构造函数 def __init__(self, ser ...
- tornado 学习笔记9 Tornado web 框架---模板(template)功能分析
Tornado模板系统是将模板编译成Python代码. 最基本的使用方式: t = template.Template("<html>{{ myv ...
- tornado 学习笔记10 Web应用中模板(Template)的工作流程分析
第8,9节中,我们分析Tornado模板系统的语法.使用以及源代码中涉及到的相关类,而且对相关的源代码进行了分析.那么,在一个真正的Web应用程序中,模板到底是怎样使用?怎样被渲染? ...
- Tornado 学习笔记13 TCPServer
为了实现TCPServer的功能,定义一个类用于继承TCPServer并实现handle_stream方法.HttpServer就是一个很好的例子. 13.1 构造函数 def __init ...
随机推荐
- 使用Eclipse自带的Axis1插件生成Web Service服务端客户端
JDK版本:1.5.0_22 Eclipse版本:Helios Service Release 2(3.6.2) WSDL文件的创建过程见http://blog.csdn.net/a19881029/ ...
- weex--手机调试
Weex Playground 我的是小米应用市场,没有搜索到,不过这是官方的二维码,我是扫描这个二维码下载的.
- 卷积神经网络 CNN 笔记
链接: 在训练卷积神经网络(CNN)的某一个卷积层时,实际上是在训练一系列的滤波器(filter).简单来说,训练CNN在相当意义上是在训练每一个卷积层的滤波器.让这些滤波器组对特定的模式有高的激活, ...
- tflearn weights获取与存储
参考: http://tflearn.org/examples/
- ACM/ICPC 2018亚洲区预选赛北京赛站网络赛-B:Tomb Raider(二进制枚举)
时间限制:1000ms 单点时限:1000ms 内存限制:256MB 描述 Lara Croft, the fiercely independent daughter of a missing adv ...
- 51Nod 1007:正整数分组(01背包)
1007 正整数分组 基准时间限制:1 秒 空间限制:131072 KB 分值: 10 难度:2级算法题 收藏 关注 将一堆正整数分为2组,要求2组的和相差最小. 例如:1 2 3 4 5,将1 ...
- java-Random类
1.Random类的概述和方法使用 * A:Random类的概述 * 此类用于产生随机数 * 如果用相同的种子创建两个 Random 实例,则对每个实例进行相同的方法调用序列,它们将生成并返回相同的数 ...
- L2-008 最长对称子串 (25 分)
对给定的字符串,本题要求你输出最长对称子串的长度.例如,给定Is PAT&TAP symmetric?,最长对称子串为s PAT&TAP s,于是你应该输出11. 输入格式: 输入在一 ...
- hdu3642 Get The Treasury 线段树--扫描线
Jack knows that there is a great underground treasury in a secret region. And he has a special devic ...
- Java中break和continue跳出指定循环
https://www.cnblogs.com/miys/p/b7f6a463bc58785d74a8a7fccd1f1243.html 在Java中,break和continue可以跳出指定循环,在 ...