本系列博文計劃:html
一、剖析基於Python的Web框架Tornado的源碼,爲什麼要閱讀源碼?python
Tornado 由前 google 員工開發,代碼很是精練,實現也很輕巧,加上清晰的註釋和豐富的 demo,咱們能夠很容易的閱讀分析 tornado. 經過閱讀 Tornado 的源碼,你將學到:ios
在tornado的子目錄中,每一個模塊都應該有一個.py文件,你能夠經過檢查他們來判斷你是否從已經從代碼倉庫中完整的遷出了項目。在每一個源代碼的文件中,你均可以發現至少一個大段落的用來解釋該模塊的doc string,doc string中給出了一到兩個關於如何使用該模塊的例子。web
二、爲Python開發一個完善的MVC框架 編程
首先將帶着你們一塊兒來剖析基於python編寫的Web框架 tornado ,本着易讀易懂的目標來寫這一系列,寄希讓小白也能zeng明白其中的道理,與其說剖析還不如說是白話,由於本系列都會用通俗的語言去描述Web框架中的各個知識點。瀏覽器
Tornado 是 FriendFeed 使用的可擴展的非阻塞式 web 服務器及其相關工具的開源版本。這個 Web 框架看起來有些像web.py 或者 Google 的 webapp,不過爲了能有效利用非阻塞式服務器環境,這個 Web 框架還包含了一些相關的有用工具 和優化。服務器
Tornado 和如今的主流 Web 服務器框架(包括大多數 Python 的框架)有着明顯的區別:它是非阻塞式服務器,並且速度至關快。得利於其 非阻塞的方式和對 epoll 的運用,Tornado 每秒能夠處理數以千計的鏈接,這意味着對於實時 Web 服務來講,Tornado 是一個理想的 Web 框架。咱們開發這個 Web 服務器的主要目的就是爲了處理 FriendFeed 的實時功能 ——在 FriendFeed 的應用裏每個活動用戶都會保持着一個服務器鏈接。(關於如何擴容 服務器,以處理數以千計的客戶端的鏈接的問題,請參閱 C10K problem。)websocket
下載安裝:網絡
pip3 install tornado 源碼安裝 https://pypi.python.org/packages/source/t/tornado/tornado-4.3.tar.gz
1. Core web frameworkapp
2. Asynchronous networking 底層模塊
3. Integration with other services
4. Utilities
寫一個hello,world:
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import tornado.ioloop
import tornado.web
class MainHandler(tornado.web.RequestHandler):
def get(self):
self.write("Hello, world")
application = tornado.web.Application([
(r"/index", MainHandler),
])
if __name__ == "__main__":
application.listen(8888)
tornado.ioloop.IOLoop.instance().start()
那麼在記下來的博文中將按照這兩種分類來進行剖析...