-
Python異步編程演化
Python版本 關鍵字 作用 3.4 asyncio 支持異步IO的標準庫 3.5 async/await 語法糖,增加異步編程友好度 3.6 穩定版asyncio -
Sanic
Sanic是一個支持
async/await
語法的異步無阻塞框架。Sanic使用
uvloop
作爲asyncio
的事件循環:-
關於
uvloop
參見《理解Sanic中的uvloop》; -
關於事件循環參見《理解Python異步中的事件循環(asyncio管理事件循環)》;
-
關於結構的具體步驟,參見2;
Sanic的處理函數必須要使用
async def
語法定義,因爲他們是異步函數。 -
-
Sonic Request對象
包含了客戶端(瀏覽器)發過來的HTTP請求的各類數據。包含以下屬性:
屬性 使用方式 意義 json request.json 當客戶端POST來的數據是json格式時,訪問json數據 args request.args 查詢字符串變量,即URL中問號?機器後面的部分 files 字典 擁有name、body和type的文件對象的字典 form 字典 以POST方式傳遞的form變量 body 字節串 POST的原始數據 其它還有:
headers
、method
、ip
、port
、socket
、app
、url
、scheme
、host
、path
、query_string
、uri_template
、token
。request
對象是web
應用要處理的對象,它包含了客戶端(瀏覽器)的請求數據,通過它的各種屬性來訪問這些請求數據。 -
sanic.response子模塊
用於生成HTTP響應,可以生成純文本(Plain Text,
response.text()
)、HTML、JSON、文件(File)、數據流(Streaming)、文件流(File Streaming)、重定向(Redirect)、生數據(Raw)。所有返回的響應都是一個
HTTPResponse
類(或StreamingHTTPRsponse
類),兩者都派生自BaseHTTPResponse
類。 -
關於路由
-
url_for方法建立URL
基於處理函數名來生成URL,類似eval對字符串的處理,當然並不一樣。
-
WebSocket路由
通過@app.websocket裝飾器或app.add_websocket_route方法定義。
websocekt路由的處理函數有兩個參數:request、websocket協議對象(有send、recv兩個方法)
-
Reference
理解Python中Sanic與async/await
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.