我們從tornado的一份檔案開始介紹輕量、易擴展的web界大佬
- 姓名:tornado
- 別名:FriendFeed 的 Web 服務器及其常用工具的開源版本
- 民族:反正不是中國
- 性別:不確認
- 民族:反正不是漢族
- 職業:Python界輕量級的web服務框架的幕后大老板、獨立董事
- 社會關系:
- 父親:Python
- 母親:Python
- 兒子:千千萬萬Python用戶
- 生卒:21世紀-永遠
- 個人能力: 簡單、輕松的為Python的web服務開發者提供幫助,能解決C10K問題。
1.1 tornado的安裝
忽略,地球人都知道
1.2 tornado版hello world - 簡單的Web服務
首先認識一下tornado是如何工作的,這里看看業界語言最經典的test,hello world問題:
1.2.1hello tornado
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
class IndexHandler(tornado.web.RequestHandler):
def get(self):
greeting = self.get_argument('greeting', 'Hello')
self.write(greeting + ', tornado world!')
if __name__ == "__main__":
tornado.options.parse_command_line()
app = tornado.web.Application(handlers=[(r"/", IndexHandler)])
http_server = tornado.httpserver.HTTPServer(app)
http_server.listen(options.port)
tornado.ioloop.IOLoop.instance().start()
- 啟動服務:python hello.py --port=8000
- 訪問服務:
$ curl http://localhost:8000/
Hello, tornado world!
神奇的hello world就這樣出生了,雖然談不上眉清目秀,但是簡單,不用懷胎十月,痛苦分娩。下面我們看看hello.py的剖腹產的視頻,看看這哥們的出生過程,已經身體器官的構成。
我們一步步分解開看看,這個小伙子是怎么成人的:
import tornado.httpserver
import tornado.ioloop
import tornado.options
import tornado.web
- 導入tornado的必備模塊,雖然tornado有很多有用的模塊,但是這四個是最重要的模塊,這就像嬰兒的四肢和大腦,為人類必備。
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
- 這是tornado提供的一個很有用的模塊(tornado.options),是從命令行中讀取設置。我們這里讀取的是監聽的http請求的端口,我們看看define的工作方法:
- 如果命令行出現define設置的同名參數,則這個參數成為全局的options的一個屬性
- 如果用戶在命令行運行了--help,則打印出define指定的help的信息
- 如果用戶沒有指定相應的數據值,則使用default
- type參數是指定port屬性的類型,若命令行設置的參數類型校驗不通過,則拋出一個異常。
class IndexHandler(tornado.web.RequestHandler):
def get(self):
greeting = self.get_argument('greeting', 'Hello')
self.write(greeting + ', friendly user!')
- 這個函數是前端請求背后的男人,即tornado前端請求的處理類,這個男人一個月的薪資決定了前端的請求是逛天貓的奢侈品旗艦店呢,還是淘寶小攤。
- 當處理一個請求時,Tornado將這個類實例化,并調用與HTTP請求方法所對應的方法,此處我們定義了一個get方法,也就是說此函數處理tornado的HTTP的get請求作出響應。
未完待續