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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM