摘要:在類似的基礎(chǔ)上,支持異步請(qǐng)求處理,也就是說,你可以使用中全新而又亮眼的語法,使你的代碼非阻塞且快速。就是基于實(shí)現(xiàn)的異步讀寫的數(shù)據(jù)庫(kù)模塊,同樣有模塊為因一波封裝了,使得讀寫更加方便,它就是
Sanic是一個(gè)類似Flask、僅僅支持Python 3.5+ 版本的web 服務(wù)器,旨在運(yùn)行速度更快。在類似Flask的基礎(chǔ)上,Sanic支持異步請(qǐng)求處理,也就是說,你可以使用Python 3.5 中全新而又亮眼的 async/await 語法,使你的代碼非阻塞且快速。
下面是一個(gè)最簡(jiǎn)單的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的基本用法:
全局生成一個(gè)Sanic對(duì)象:app = Sanic()
Web路由由裝飾器@app.route()管理,也可以通過url_for()、add_route()指定(詳見文檔)
請(qǐng)求響應(yīng)函數(shù)用async聲明進(jìn)行異步處理,輸入必須有request對(duì)象,返回response對(duì)象
Blueprint
如果網(wǎng)站很復(fù)雜,路由路徑很多,全部寫在一個(gè)文件里面會(huì)比較復(fù)雜,這時(shí)候可以使用Blueprint,把不同功能寫到不同blueprint文件里面,讓整個(gè)代碼結(jié)構(gòu)邏輯更清晰
Class-Based Views
如果你用過tornado,一定對(duì)它用類處理請(qǐng)求的方式印象深刻,對(duì)同一個(gè)路由路徑分別處理GET、POST、DETET等請(qǐng)求方式時(shí),只要實(shí)現(xiàn)該類的幾個(gè)不同方法即可,讓整個(gè)代碼的邏輯結(jié)構(gòu)更清晰。同樣,Sanic也提供了基于類的處理方式: HTTPMethodView
Jinja網(wǎng)頁模板
Jinja具有快速?gòu)?qiáng)大的html模板渲染能力,是很多Python Web框架首選的html模板處理器。Sanic沒有實(shí)現(xiàn)自己的模板處理,但可以把Jinja融入進(jìn)來: sanic_jinja2
i18n國(guó)際化處理
Web網(wǎng)站經(jīng)常要同時(shí)支持多種語言,這個(gè)時(shí)候就要遇到國(guó)際化處理的問題,這方便也有模塊把Babel集成進(jìn)來: sanic_babel
小技巧:
你針對(duì)路由路徑 ‘/product’ 寫了Blueprint bp_product, 但要支持en, zh, jp三種語言路徑,即: /en/product, /zh/product, /jp/product, 你該怎么做呢?
在一個(gè)循環(huán)里為每種語言注冊(cè)該路徑:
for lang in ["en", "zh", "jp"]: app.blueprint(bp_product, url_prefix="/%s" % lang)
MySQL讀寫
Sanic是異步處理的框架,讀寫數(shù)據(jù)庫(kù)MySQL當(dāng)然也要用異步IO的方式,才能體系異步的高效。aiomysql就是基于pymysql實(shí)現(xiàn)的異步讀寫MySQL的數(shù)據(jù)庫(kù)模塊,同樣有模塊為sanic因一波封裝了aiomysql,使得MySQL讀寫更加方便,它就是: sanicdb
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/43428.html
摘要:快速開始在安裝之前在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。踏出第一步我們將正式使用來構(gòu)建一個(gè)項(xiàng)目,讓我們踏出第一步,利用來編寫一個(gè)返回字符串的服務(wù)程序。本次示例的源代碼全部在上,見。 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支持異步IO的標(biāo)...
摘要:詳細(xì)信息可以看下這個(gè)問題先在說下我的部署方式使用部署配置文件啟動(dòng)方式總結(jié)試用了下,把之前的一個(gè)聊天機(jī)器人從改成了。預(yù)告下一篇將介紹如何使用一步一步創(chuàng)建一個(gè)聊天機(jī)器人。 簡(jiǎn)介 Sanic 是一個(gè)和類Flask 的基于Python3.5+的web框架,它編寫的代碼速度特別快。除了像Flask 以外,Sanic 還支持以異步請(qǐng)求的方式處理請(qǐng)求。這意味著你可以使用新的 async/await ...
摘要:實(shí)例實(shí)例測(cè)試結(jié)果增加路由實(shí)例測(cè)試結(jié)果提供了一個(gè)方法,根據(jù)處理程序方法名生成。異常拋出異常要拋出異常,只需從異常模塊中提出相應(yīng)的異常。 typora-copy-images-to: ipic [TOC] 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經(jīng)歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支...
摘要:最近借用了女朋友的公號(hào),感覺如果只是用來發(fā)文章,太浪費(fèi)微信給提供的這些功能了。想了想,先從最簡(jiǎn)單的開始,做一個(gè)聊天機(jī)器人吧。是一款接口的,基于一系列規(guī)則和機(jī)器學(xué)習(xí)算法完成的聊天機(jī)器人。 最近借用了女朋友的公號(hào),感覺如果只是用來發(fā)文章,太浪費(fèi)微信給提供的這些功能了。想了想,先從最簡(jiǎn)單的開始,做一個(gè)聊天機(jī)器人吧。 使用Python實(shí)現(xiàn)聊天機(jī)器人的方案有多種:AIML、chatterBot以...
閱讀 4015·2023-04-26 02:13
閱讀 2258·2021-11-08 13:13
閱讀 2744·2021-10-11 10:59
閱讀 1742·2021-09-03 00:23
閱讀 1314·2019-08-30 15:53
閱讀 2292·2019-08-28 18:22
閱讀 3061·2019-08-26 10:45
閱讀 743·2019-08-23 17:58