首页 > 代码库 > tornado基础入门(一)——简单了解tornado

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

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