tornado基础入门(一)——简单了解tornado

参考:http://demo.pythoner.com/itt2zh/ch1.html

tornado是一个轻量级的web框架,是一个用python写的web服务器,它有三个最大的特点(优势)速度、简单和可扩展性。

编写tornado应用做多最多的工作就是定义一个类去继承tornado中的RequestHandler类。

来看一个例子:

# hello.py

 1 import tornado.httpserver
 2 import tornado.ioloop
 3 import tornado.options
 4 import tornado.web
 5
 6 from tornado.options import define, options
 7 define("port", default=8000, help="run on the given port", type=int)
 8
 9 class IndexHandler(tornado.web.RequestHandler):
10     def get(self):
11         greeting = self.get_argument(‘greeting‘, ‘Hello‘)
12         self.write(greeting + ‘, friendly user!‘)
13
14 if __name__ == "__main__":
15     tornado.options.parse_command_line()
16     app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
17     http_server = tornado.httpserver.HTTPServer(app)
18     http_server.listen(options.port)
19     tornado.ioloop.IOLoop.instance().start()

这个例子编写了一个非常简单的应用。

我们可以在命令行中启动它:

python hello.py --port=8000

然后再从浏览器中打开这个应用,输入网址:

http://localhost:8000/

可以看到网页上显示:

Hello, friendly user!

" 我们在命令行输入的  ’prot‘ 的参数是通过第七行中的define传递的,define是tornado.options模块中的一个函数,这个模块用来读取命令行中的一些设置。例如我们在命令行中设置了它的端口prot=8888,define就匹配出它所设置的同名变量 ‘prot’ ,将它从默认值改为 ‘8888’(默认值为8000),这时我们则需要从这个网址进入“http://localhost:8888/" "

这显示的是我们代码第12行 ’write‘进的内容。

我们可以定制一下这个内容,可以看到 ’write‘ 的有个自定义的变量 ‘greeting‘ ,而这个变量的默认值为 ‘Hello’ , 它是通过tornado中的内建函数 ‘ get_argument ‘ 来传递给 ’write‘ ,

所以我们来改变这个变量,从哪入手呢? 从网址入手!

http://localhost:8000/?greeting=Hi

在 ‘?’后给变量重新赋值,这时可以发现网页上的内容变为:

Hi, friendly user!

来梳理以下这段代码的工作流程:

14 if __name__ == "__main__":
15     tornado.options.parse_command_line()
16     app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
17     http_server = tornado.httpserver.HTTPServer(app)
18     http_server.listen(options.port)
19     tornado.ioloop.IOLoop.instance().start()

  1. 我们的应用真正运行起来的时 ‘15、16 ’两行,通过tornado.options模块解析命令行参数,再创建了一个tornado的Application类的实例,最重要的参数时 ‘handler’ 它来告诉tornado应该用哪个类来响应请求。

  2. 后面开始,这段代码将会被反复使用,Application对象被创建,我们将其传递给tornado中的HTTPServer对象,然后使用我的命令行指定端口监听(通过options模块取出)。

  3. 最后,程序准备好接受http请求后,我们创建一个tornado的IOLoop的实例。

                                                                2016-11-17   15:51:49

参考:http://demo.pythoner.com/itt2zh/ch1.html

时间: 2025-01-08 11:29:53

tornado基础入门(一)——简单了解tornado的相关文章

Python零基础入门(4)-------简单了解Python是怎么运行

1.编码 即是编写代码 2.将我们写好的源代码编译成字节码(后缀名是 pyc的文件) [导致重新编译的原因:源代码改变,版本不一致.] 3.载入到PVM(Python Virtual Machine)运行 以上都是由Python解释器完成的 看起来方式跟JAVA虚拟机   .NET framework  很是相似 原文地址:https://www.cnblogs.com/Hong-Bin/p/8343726.html

1.tornado基础

import tornado.web ''' tornado基础web框架模块 ''' import tornado.ioloop ''' tornado的核心循环IO模块,封装了linux的epoll和BSD的kqueue,是tornado高效的基础 ''' import tornado.httpserver ''' tornado的server模块,用来创建服务端 ''' # 类比django中的视图 # 一个业务处理类 class IndexHandler(tornado.web.Requ

Tornado从入门到进阶 打造支持高并发的技术论坛

第1章 Tornado从入门到进阶 打造支持高并发的技术论坛-课程导学Tornado从入门到进阶 打造支持高并发的技术论坛-课程导学 第2章 开发环境搭建(会的可以略过本章,2-4要看下哦)本章节主要讲解搭建开发环境,包括navicat.pycharm.virtualenvwrapper的使用,在本章节也会重点介绍课程资源的下载和配置使用. 第3章 为什么要学习tornado很多人会把tornado和flask以及django相提并论,只是知道tornado是高并发的,但是因为对tornado的

Tornado的入门研究

1.为啥要了解Tornado 首先,Tornado是大神写出来的,如果学习python的话,参照Tornado的源码是一件非常好的事情,属于FaceBook的开源代码 其次,Tornado就是我们在 FriendFeed 的 Web 服务器及其常用工具的开源版本[1].Tornado 和现在的主流 Web 服务器框架(包括大多数 Python 的框架)有着明显的区别:它是非阻塞式服务器,而且速度相当快.得利于其 非阻塞的方式和对epoll的运用,Tornado 每秒可以处理数以千计的连接,因此

Tornado 学习笔记 Tornado基础 1

这是根据官方文档学习后总结的笔记: Tornado基础 Tornado是一套web框架和异步网络功能库,使用非阻塞是IO,可支持数万个活动连接.支持长活跃连接,支持 long polling长连接,支持WebSockets. A web framework (including RequestHandler which is subclassed to create web applications, and various supporting classes). Client- and se

Android基础入门教程——2.4.2 ListView简单实用

Android基础入门教程--2.4.2 ListView简单实用 标签(空格分隔): Android基础入门教程 本节引言: 一口气把Android入门网络编程的章节写完了,本节我们来继续学习没有讲完的UI控件部分, 回顾上一节,我们介绍了Adapter适配器的概念,然后学习了三个最简单的适配器的使用: ArrayAdapter,SimpleAdapter和SimpleCursorAdapter,而本节给大家讲解的是第一个 需搭配Adapter使用的UI控件:ListView,不过在版本中被R

Tornado 基础安装及启动

Tornado 基础安装及启动 2017年03月24日 hairui Tornado 115 0 Tornado的安装 Python 2.7.x 安装学习     手动安装: 下载 tornado-1.2.1.tar.gz Bash tar xvzf tornado-1.2.1.tar.gzcd tornado-1.2.1python setup.py buildsudo python setup.py install #本段代码来自 海瑞博客http://www.hairuinet.com/T

Android基础入门教程——10.12 传感器专题(3)——加速度-陀螺仪传感器

Android基础入门教程--10.12 传感器专题(3)--加速度/陀螺仪传感器 标签(空格分隔): Android基础入门教程 本节引言: 本节继续来扣Android中的传感器,本节带来的是加速度传感器(Accelerometer sensor)以及 陀螺仪传感器(Gyroscope sensor),和上一节的方向传感器一样有着x,y,z 三个轴, 还是要说一点:x,y轴的坐标要和绘图那里的x,y轴区分开来!传感器的是以左下角 为原点的!x向右,y向上!好的,带着我们的套路来学本节的传感器吧

Android基础入门教程——8.1.3 Android中的13种Drawable小结 Part 3

Android基础入门教程--8.1.3 Android中的13种Drawable小结 Part 3 标签(空格分隔): Android基础入门教程 本节引言: 本节我们来把剩下的四种Drawable也学完,他们分别是: LayerDrawable,TransitionDrawable,LevelListDrawable和StateListDrawable, 依旧贴下13种Drawable的导图: 1.LayerDrawable 层图形对象,包含一个Drawable数组,然后按照数组对应的顺序来