參考書籍《introduction to tornado》
1.1 tornado是什麼?
tornado是使用python編寫的乙個強大的、可擴充套件的web伺服器。它在處理嚴峻的網路流量時表現得足夠 強健,但卻在建立和編寫時有著足夠的輕量級,並能夠被用在大量的應用和工具中。此外,它還擁有處理安全性、使用者驗證、社交網路以及與外部服務(如資料庫和**api) 進行非同步互動的工具。
1.2 hello tornado
下面是乙個全功能的tornado應用的基礎示例:
import tornado.web在程式的最頂部,我們需要匯入一些tornado模組,tornado還包含一些其他模組,但是在這個例子中,我們最起碼需要包含著四個模組。
from tornado.options import define, options
define("port", default=8000, help="run on the given port", type=int)
這是乙個有用的模組(tornado.options)來從命令列中讀取設定。我們在這裡使用這個模組指定我們的應用監聽http請求的埠。
如果乙個與define語句中同名的的設定在命令列中被給出,那麼他將成為全域性options的乙個屬性。如果程式使用了--help
,程式會列印出你在define函式中help指定的引數文字。如果沒有指定值,可以用default=所指定的值來代替。type對引數型別進行檢驗,這裡為int
,當引數型別不合適是會丟擲乙個異常。
class indexhandler(tornado.web.requesthandler):
def get(self):
greeting = self.get_argument('greeting', 'hello')
self.write(greeting + ', friendly user!')
這個例子中只定義了乙個get
方法,在以後的實際應用中我們可以用到get post
等其他的http方法。
這裡的get_argument
是requesthandler
的內建方法,從乙個查詢字串中獲取greeting
的值。tornado將使用get_argument
的第二個引數值作為預設值。
這裡的write
方法也是requesthandler
種的乙個有用的方法,它將字串形式的引數寫入http響應中。在這裡是將greeting
引數提供的值寫入greeting
中,並寫到響應中。
tornado.ioloop.ioloop.instance().start()到這裡 這個簡單的例子便可以實現了。
可以在命令列中實現,也可以在ide中實現(個人使用的是pycharm)
接下來是乙個稍微複雜一點的例子,對字串進行操作的例子:
tornado.ioloop.ioloop.instance().start()這裡的get
請求會返回url路徑中指定的字串的反轉格式。如/reverse/tornado
返回odanrot。
而post
請求將從text格式中取得指定的文字。
這裡需要正規表示式相關的知識,到了後面的學習中,必要時再去深入學習。
到目前我們使用了post
get
,tornado還支援任何合法的http請求。
http狀態碼
404 not found #路徑無法匹配時返回404
400 bad request #呼叫乙個麼有預設值的get_argument函式,並且沒有找到給定名稱的引數,返回400
405 method not allowed #傳入的請求使用了沒有定義過的http方法,返回405
500 internal server error #當遇到任何不能讓其退出的錯誤,也會返回500
ps:
看完第一章有乙個基本的了解,但是關於web方面的知識還是比較少,譬如http方面。需要同時看《tcp/ip》
而且第一次寫這種筆記的話,有些贅述,但是好在可以讓自己更好的了解,有乙個整理和總結對於學習而言亦有幫助。共勉
Tornado學習筆記1 安裝
環境ubuntu,python3.6 安裝pip3 sudo apt get install python3 pip pip3換源 cd mkdir pip cd pip touch pip.conf gedit pip.conf 在pip.conf中輸入以下內容 global index url ...
tornado學習筆記
tornado是乙個python到開源web框架,它比django要輕量級到多,也沒有什麼元件,只有運用到對應到業務場景下我才使用這個框架,它是單程序單執行緒到非同步非阻塞模型,適用與長連線長輪巡,高併發,非同步非阻塞 安裝 pip install tornado view層 file views ...
Tornado學習總結1
tornado是乙個開源的輕量級,高效率,非阻塞的python是實現的web框架。要使用它一般需要安裝一下套件 list python 一般建議使用python2.5 python2.6 json python的json庫,建議使用2.0.9 curl 利用url語法規定來傳輸檔案和資料的工具,支援...