非同步處理的框架Sanic的使用方法和小技巧

2021-09-24 05:08:14 字數 1340 閱讀 2034

sanic是非同步處理的框架,運用sanic可以開發快速非同步響應的web程式。想必大家看到這個都會比較期待和興奮。

那麼如何使用sanic來實現快速響應呢?我們先來看一看sanic的基本介紹。

sanic類似flask、只支援python 3.5+ 版本的web 伺服器,執行速度更快。在類似flask的基礎上,sanic支援非同步請求處理,你可以使用python 3.5 中全新而又亮眼的 async/await 語法,使你的**快速。

下面是乙個最簡單的sanic web 程式:

以上**顯示了sanic的基本用法:

請求響應函式用async宣告進行非同步處理,輸入必須有request物件,返回response物件

什麼時候使用blueprint?

如果**很複雜,路由路徑很多,全部寫在乙個檔案裡面會比較複雜,這時候可以使用blueprint,把不同功能寫到不同blueprint檔案裡面,讓整個**結構邏輯更清晰

class-based views

如果你用過tornado,一定對它用類處理請求的方式印象深刻,對同乙個路由路徑分別處理get、post、detet等請求方式時,只要實現該類的幾個不同方法即可,讓整個**的邏輯結構更清晰。同樣,sanic也提供了基於類的處理方式: httpmethodview

jinja網頁模板強大功能

jinja具有快速強大的html模板渲染能力,是很多python web框架首選的html模板處理器。sanic沒有實現自己的模板處理,但可以把jinja融入進來: sanic_jinja2

i18n國際化處理

小技巧:

你針對路由路徑 『/product』 寫了blueprint bp_product, 但要支援en, zh, jp三種語言路徑,即: /en/product, /zh/product, /jp/product, 你該怎麼做呢?

在乙個迴圈裡為每種語言註冊該路徑:

mysql讀寫

sanic是非同步處理的框架,讀寫資料庫mysql當然也要用非同步io的方式,才能體系非同步的高效。aiomysql就是基於pymysql實現的非同步讀寫mysql的資料庫模組,同樣有模組為sanic因一波封裝了aiomysql,使得mysql讀寫更加方便,它就是: sanicdb

看完是不是覺得很厲害的樣子,頭腦有沒有靈光閃顯的感jio?

使用Sanic框架快速搭建測試介面

from sanic import sanic from sanic import response from sanic.response import text,json 給你的專案起個名 路由裝飾器,和flask很相似。async deftest request return text hel...

非同步處理任務框架

非同步處理任務框架 非同步獲取頭像 第三個引數就是非同步任務執行完畢後的返回值 author administrator public class loadimageasyntask extends asynctask public inte ce loadimageasyntaskcallback...

python非同步框架asyncio的使用

python對非同步程式設計有原生的支援,即asyncio標準庫,使用非同步io模型可以節約大量的io等待時間,非常適合於爬蟲任務。import time import asyncio import aiohttp 用非同步方式獲取網頁內容 loop asyncio.get event loop 獲...