Sanic十四:Sanic上下文ctx


 

由於Sanic是異步框架,所以沒辦像flask一樣提供一個全局的Request對象,但是Sanic提供了一個自定義上下文的功能,只需要指定ctx即可

 

一、Sanic自帶的上下文管理器

由源碼看,當沒有指定ctx時,Sanic會默認使用 SimpleNamespace() 進行實例化

 

使用示例,在中間件中使用ctx記錄一些數據,這樣,此中間件之后的所有流程,都能使用此數據

 

二、自定義上下文

先定義一個數據結構,並在實例化Sanic的時候,指定ctx為此實例對象,然后在接口之中使用,這個時候,各接口中的ctx是同一個對象

先帶着json數據請求第一個接口,第一個接口會把數據存到自定義的上下文中

再請求第二個接口,就可以把存着的數據拿出來使用

 

這樣就可以將從數據庫獲取的用戶對象存儲在 ctx 中。之后的其他中間件以及請求期間的處理程序都可以對此進行訪問。

 


免責聲明!

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



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