zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    jQuery的父,子,兄弟节点查找方法
    我们的产品最终入驻淘宝服务市场
    iframe显示滚动栏
    自己定义控件三部曲之动画篇(十三)——实现ListView Item进入动画
    [叁]Pomelo游戏server编程分享 之 server结构与配置分析
    数列求和
    字节与字符_字节流与字符流_ASCII与Unicode_GB2312_GBK_GB18030_BIG-5
    Codeforces Round #257(Div. 2) B. Jzzhu and Sequences(矩阵高速幂)
    呼叫保持流程
    PDF转EPUB格式电子书经验总结
  • 原文地址:https://www.cnblogs.com/ymjr/p/6074119.html
Copyright © 2011-2022 走看看