亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

使用Sanic開發(fā)快速異步響應(yīng)的Web程序

clasnake / 3391人閱讀

摘要:在類似的基礎(chǔ)上,支持異步請求處理,也就是說,你可以使用中全新而又亮眼的語法,使你的代碼非阻塞且快速。就是基于實現(xiàn)的異步讀寫的數(shù)據(jù)庫模塊,同樣有模塊為因一波封裝了,使得讀寫更加方便,它就是

Sanic是一個類似Flask、僅僅支持Python 3.5+ 版本的web 服務(wù)器,旨在運(yùn)行速度更快。在類似Flask的基礎(chǔ)上,Sanic支持異步請求處理,也就是說,你可以使用Python 3.5 中全新而又亮眼的 async/await 語法,使你的代碼非阻塞且快速。

下面是一個最簡單的Sanic Web 程序:

from sanic import Sanic
from sanic.response import json

app = Sanic()

@app.route("/")
async def test(request):
return json({"hello": "world"})

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=8000)

以上代碼顯示了Sanic的基本用法:

全局生成一個Sanic對象:app = Sanic()
Web路由由裝飾器@app.route()管理,也可以通過url_for()、add_route()指定(詳見文檔)
請求響應(yīng)函數(shù)用async聲明進(jìn)行異步處理,輸入必須有request對象,返回response對象
Blueprint

如果網(wǎng)站很復(fù)雜,路由路徑很多,全部寫在一個文件里面會比較復(fù)雜,這時候可以使用Blueprint,把不同功能寫到不同blueprint文件里面,讓整個代碼結(jié)構(gòu)邏輯更清晰

Class-Based Views

如果你用過tornado,一定對它用類處理請求的方式印象深刻,對同一個路由路徑分別處理GET、POST、DETET等請求方式時,只要實現(xiàn)該類的幾個不同方法即可,讓整個代碼的邏輯結(jié)構(gòu)更清晰。同樣,Sanic也提供了基于類的處理方式: HTTPMethodView

Jinja網(wǎng)頁模板

Jinja具有快速強(qiáng)大的html模板渲染能力,是很多Python Web框架首選的html模板處理器。Sanic沒有實現(xiàn)自己的模板處理,但可以把Jinja融入進(jìn)來: sanic_jinja2

i18n國際化處理

Web網(wǎng)站經(jīng)常要同時支持多種語言,這個時候就要遇到國際化處理的問題,這方便也有模塊把Babel集成進(jìn)來: sanic_babel

小技巧:

你針對路由路徑 ‘/product’ 寫了Blueprint bp_product, 但要支持en, zh, jp三種語言路徑,即: /en/product, /zh/product, /jp/product, 你該怎么做呢?

在一個循環(huán)里為每種語言注冊該路徑:

for lang in ["en", "zh", "jp"]:

    app.blueprint(bp_product, url_prefix="/%s" % lang)

MySQL讀寫

Sanic是異步處理的框架,讀寫數(shù)據(jù)庫MySQL當(dāng)然也要用異步IO的方式,才能體系異步的高效。aiomysql就是基于pymysql實現(xiàn)的異步讀寫MySQL的數(shù)據(jù)庫模塊,同樣有模塊為sanic因一波封裝了aiomysql,使得MySQL讀寫更加方便,它就是: sanicdb

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/43428.html

相關(guān)文章

  • Sanic教程:快速開始

    摘要:快速開始在安裝之前在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。踏出第一步我們將正式使用來構(gòu)建一個項目,讓我們踏出第一步,利用來編寫一個返回字符串的服務(wù)程序。本次示例的源代碼全部在上,見。 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支持異步IO的標(biāo)...

    warmcheng 評論0 收藏0
  • python 最快 web 框架 Sanci 快速入門

    摘要:詳細(xì)信息可以看下這個問題先在說下我的部署方式使用部署配置文件啟動方式總結(jié)試用了下,把之前的一個聊天機(jī)器人從改成了。預(yù)告下一篇將介紹如何使用一步一步創(chuàng)建一個聊天機(jī)器人。 簡介 Sanic 是一個和類Flask 的基于Python3.5+的web框架,它編寫的代碼速度特別快。除了像Flask 以外,Sanic 還支持以異步請求的方式處理請求。這意味著你可以使用新的 async/await ...

    snifes 評論0 收藏0
  • sanic異步框架之中文文檔

    摘要:實例實例測試結(jié)果增加路由實例測試結(jié)果提供了一個方法,根據(jù)處理程序方法名生成。異常拋出異常要拋出異常,只需從異常模塊中提出相應(yīng)的異常。 typora-copy-images-to: ipic [TOC] 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支...

    elliott_hu 評論0 收藏0
  • 微信公號DIY:一小時搭建微信聊天機(jī)器人

    摘要:最近借用了女朋友的公號,感覺如果只是用來發(fā)文章,太浪費(fèi)微信給提供的這些功能了。想了想,先從最簡單的開始,做一個聊天機(jī)器人吧。是一款接口的,基于一系列規(guī)則和機(jī)器學(xué)習(xí)算法完成的聊天機(jī)器人。 最近借用了女朋友的公號,感覺如果只是用來發(fā)文章,太浪費(fèi)微信給提供的這些功能了。想了想,先從最簡單的開始,做一個聊天機(jī)器人吧。 使用Python實現(xiàn)聊天機(jī)器人的方案有多種:AIML、chatterBot以...

    source 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<