tornado請求與響應


tornado中處理請求與響應的類如下, 所有視圖類必須繼承該類:

tornado.web.RequestHandler

. 響應之self.write()方法

  1.  該方法可返回值的類型: 當返回字典時, 可以把字典json成字符串, 使用write返回, 其在response

       中呈現的是text類型.

  write()方法執行不代表視圖的終止,該方法把返回的內容會放入緩存區, 

   其下如還有代碼會繼續執行.

  緩存區什么時候返回內容呢?  1.程序結束; 2.手動刷新; 3.緩存區滿了; 4.遇到\n

  2.  使用write方法直接返回字典, 也可. 其在response響應頭中會自動呈現為json類型.

 

.  響應之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視圖方法中直接使用:(注意reasonNone時狀態碼必須為正常值

     def get(self):

         self.set_status(666, ‘狀態碼的描述’)

         self.write(‘...........’)

  2.  tornado提供有全局設置響應頭的方法, 方法名固定, 框架內置的:

      在視圖類中定義該方法, 其下配合set_header方法設置響應頭, 即可讓試圖類中所有方法都帶有響應頭:

     def set_default_headers():

         self.set_header(key, value)  # keyvalue自定義即可.

         self.set_header(k1, v1)     # 可羅列多個該方法, 一次設置多個響應頭


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM