摘要:在類似的基礎(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
摘要:快速開始在安裝之前在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。踏出第一步我們將正式使用來構(gòu)建一個項目,讓我們踏出第一步,利用來編寫一個返回字符串的服務(wù)程序。本次示例的源代碼全部在上,見。 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支持異步IO的標(biāo)...
摘要:詳細(xì)信息可以看下這個問題先在說下我的部署方式使用部署配置文件啟動方式總結(jié)試用了下,把之前的一個聊天機(jī)器人從改成了。預(yù)告下一篇將介紹如何使用一步一步創(chuàng)建一個聊天機(jī)器人。 簡介 Sanic 是一個和類Flask 的基于Python3.5+的web框架,它編寫的代碼速度特別快。除了像Flask 以外,Sanic 還支持以異步請求的方式處理請求。這意味著你可以使用新的 async/await ...
摘要:實例實例測試結(jié)果增加路由實例測試結(jié)果提供了一個方法,根據(jù)處理程序方法名生成。異常拋出異常要拋出異常,只需從異常模塊中提出相應(yīng)的異常。 typora-copy-images-to: ipic [TOC] 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支...
摘要:最近借用了女朋友的公號,感覺如果只是用來發(fā)文章,太浪費(fèi)微信給提供的這些功能了。想了想,先從最簡單的開始,做一個聊天機(jī)器人吧。是一款接口的,基于一系列規(guī)則和機(jī)器學(xué)習(xí)算法完成的聊天機(jī)器人。 最近借用了女朋友的公號,感覺如果只是用來發(fā)文章,太浪費(fèi)微信給提供的這些功能了。想了想,先從最簡單的開始,做一個聊天機(jī)器人吧。 使用Python實現(xiàn)聊天機(jī)器人的方案有多種:AIML、chatterBot以...
閱讀 4223·2023-04-26 02:13
閱讀 2324·2021-11-08 13:13
閱讀 2824·2021-10-11 10:59
閱讀 1806·2021-09-03 00:23
閱讀 1368·2019-08-30 15:53
閱讀 2368·2019-08-28 18:22
閱讀 3109·2019-08-26 10:45
閱讀 801·2019-08-23 17:58