tornado中處理請求與響應的類以下, 全部視圖類必須繼承該類:web
tornado.web.RequestHandlerjson
一. 響應之self.write()方法瀏覽器
1. 該方法可返回值的類型: 當返回字典時, 能夠把字典json成字符串, 使用write返回, 其在response頭緩存
中呈現的是text類型.框架
write()方法執行不表明視圖的終止,該方法把返回的內容會放入緩存區, tornado
其下如還有代碼會繼續執行.url
緩存區何時返回內容呢? 1.程序結束; 2.手動刷新; 3.緩存區滿了; 4.遇到\nspa
2. 使用write方法直接返回字典, 也可. 其在response響應頭中會自動呈現爲json類型.code
二. 響應之self.redirect( url )方法:繼承
1. 重定向到url網址.
三. 響應之self.send_error( status_code, **kwargs) 和 write_error( status_code, **kwargs)
send_error用來拋出http錯誤狀態碼, 默認爲500, 拋出後tornado會調用write_error方法處理.並返回
給瀏覽器事先定義的錯誤頁面.
注意: self.send_error()只是個tornado提供的一個方法, 而write_error是類方法.
def write_erroe(self, status_code, **kwargs):
類中不管何處send_error方法拋出的, 都會在該方法中處理. status_code會接受錯誤碼
可根據status_code來返回不一樣的自定義頁面.
def get(self, *args, **kwargs):
self.send_error(500)
四. 響應之self.finish()方法
1. 做用同self.write()方法, 均可用於返回數據, 不一樣之處在於write方法是把數據放入緩存區, 而finish方法
在write基礎上會自動刷新緩存區把內容返回, 且會關閉當此請求通道, 其下其他的返回內容無效.
五. 響應頭設置
1. set_status( status_code, reason=None)方法的使用:
在tornado視圖方法中直接使用:(注意reason爲None時狀態碼必須爲正常值
def get(self):
self.set_status(666, ‘狀態碼的描述’)
self.write(‘...........’)
2. tornado提供有全局設置響應頭的方法, 方法名固定, 框架內置的:
在視圖類中定義該方法, 其下配合set_header方法設置響應頭, 便可讓試圖類中全部方法都帶有響應頭:
def set_default_headers():
self.set_header(key, value) # key和value自定義便可.
self.set_header(k1, v1) # 可羅列多個該方法, 一次設置多個響應頭