Tornado學習筆記(1)

2021-09-19 17:19:34 字數 4172 閱讀 6922

參考書籍《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_argumentrequesthandler的內建方法,從乙個查詢字串中獲取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格式中取得指定的文字。

這裡需要正規表示式相關的知識,到了後面的學習中,必要時再去深入學習。

到目前我們使用了postget,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語法規定來傳輸檔案和資料的工具,支援...