Web.py 架構學習筆記 - ctx

來源:互聯網
上載者:User

標籤:http   處理   資料   執行個體   class   目錄   web.py   使用   對象   

摘要:

ctx用於存取web請求的環境變數,基於ThreadedDict類進行執行個體化。ThreadedDict類可執行個體化字典類型的對象,該對象某些屬性可用於存取處理線程的id。 這樣字典化執行個體的線程池使得web訪問的並發控制很好地解決,而且線程之間非常獨立。

 

範例:

1 class example:2     def GET(self):3         referer = web.ctx.env.get(‘HTTP_REFERER‘, ‘http://google.com‘)4         raise web.seeother(referer)

上述代碼使用web.ctx.env來擷取HTTP_REFERER這一環境變數。如果沒有值,則預設會返回‘http://google.com‘,然後重新導向到該網站。

web.ctx可以通過loadhook(掛載)的方式來進行設定。例如,每當service收到一個web請求,Session資料都會存放在web.ctx中。因為web.ctx是安全執行緒的,這時候就可以使用該Session資料(該資料必須是python中可識別的資料類型)。

 

ctx中包含的資料:

environ 即 env 一個包含標準WSGI 環境變數格式的字典
home web應用的根目錄,同時包含任何外部應用引用時的顯示名,例如,http://example.org/admin
homedomain ? (顯示為協議+主機) http://example.org
homepath 使用者請求的path,即homepath + path = 使用者完整的請求地址,處理時會與urls進行互動
host 主機名稱,包含連接埠(預設8080)
ip 發起web請求的使用者ip
method 發起的web要求方法
path 使用者請求部分的path,例如,/logon/authenticated,但是對於掛載的子應用,則不會顯示子應用的名稱。例如,主應用myapp.py,子應用subapp.py。子應用中有頁面/read/blogs,則ctx中只會返回example.org/read/blogs而不是example.org/subapp/read/blogs
protocol 請求遵循的協議http/https/ftp...
query url中請求的條件
fullpath 即 path+query 完整的請求地址,包含請求的頁面及請求的條件

 

響應狀態:

  • status - http狀態代碼,(預設200,ok )異常響應碼:401 未授權
  • headers - 包含要求標頭(http header)資訊的兩個元組
  • output - 包含響應實體的字串

Web.py 架構學習筆記 - ctx

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.