本章我們來學習 Tornado 支持的請求方式
請求方式
Tornado支持任何合法的HTTP請求(GET、POST、PUT、DELETE、HEAD、OPTIONS)。你可以非常容易地定義上述任一種方法的行為,只需要在 RequestHandler 類中使用同名的方法。(也就是在視圖中定義同名的方法)
關於請求方式對應的操作和返回碼可以參考 http://www.runoob.com/w3cnote/restful-architecture.html 不過具體還是要與業務進行匹配。
狀態碼
使用RequestHandler類的set_status()方法顯式地設置HTTP狀態碼。然而,你需要記住在某些情況下,Tornado會自動地設置HTTP狀態碼。
比如如果訪問一個無法匹配的路由,則會返回404報錯,而且狀態碼是404
但是我們在代碼中沒有指定返回的狀態碼,常用的有:
404 Not Found
Tornado會在HTTP請求的路徑無法匹配任何RequestHandler類相對應的模式時返回404(Not Found)響應碼。
400 Bad Request
如果你調用了一個沒有默認值的get_argument函數,並且沒有發現給定名稱的參數,Tornado將自動返回一個400(Bad Request)響應碼。
405 Method Not Allowed
如果傳入的請求使用了RequestHandler中沒有定義的HTTP方法(比如,一個POST請求,但是處理函數中只有定義了get方法),Tornado將返回一個405(Methos Not Allowed)響應碼。
500 Internal Server Error
當程序遇到任何不能讓其退出的錯誤時,Tornado將返回500(Internal Server Error)響應碼。你代碼中任何沒有捕獲的異常也會導致500響應碼。
200 OK
如果響應成功,並且沒有其他返回碼被設置,Tornado將默認返回一個200(OK)響應碼。
我們也可以自定義錯誤返回,只需在class中定義一個名為 write_error 的方法
比如
def write_error(self, status_code, **kwargs): self.write('%s' % status_code)
該段代碼會將 錯誤code以字符串的形式返回回去
需要注意的是該方法是寫在類中,也就是說該方法只能作用於一個視圖。