摘要:在類似的基礎上,支持異步請求處理,也就是說,你可以使用中全新而又亮眼的語法,使你的代碼非阻塞且快速。就是基于實現的異步讀寫的數據庫模塊,同樣有模塊為因一波封裝了,使得讀寫更加方便,它就是
Sanic是一個類似Flask、僅僅支持Python 3.5+ 版本的web 服務器,旨在運行速度更快。在類似Flask的基礎上,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()指定(詳見文檔)
請求響應函數用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國際化處理
Web網站經常要同時支持多種語言,這個時候就要遇到國際化處理的問題,這方便也有模塊把Babel集成進來: sanic_babel
小技巧:
你針對路由路徑 ‘/product’ 寫了Blueprint bp_product, 但要支持en, zh, jp三種語言路徑,即: /en/product, /zh/product, /jp/product, 你該怎么做呢?
在一個循環里為每種語言注冊該路徑:
for lang in ["en", "zh", "jp"]: app.blueprint(bp_product, url_prefix="/%s" % lang)
MySQL讀寫
Sanic是異步處理的框架,讀寫數據庫MySQL當然也要用異步IO的方式,才能體系異步的高效。aiomysql就是基于pymysql實現的異步讀寫MySQL的數據庫模塊,同樣有模塊為sanic因一波封裝了aiomysql,使得MySQL讀寫更加方便,它就是: sanicdb
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/43428.html
摘要:快速開始在安裝之前在支持異步的過程中,都經歷了哪些比較重大的更新。踏出第一步我們將正式使用來構建一個項目,讓我們踏出第一步,利用來編寫一個返回字符串的服務程序。本次示例的源代碼全部在上,見。 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支持異步IO的標...
摘要:詳細信息可以看下這個問題先在說下我的部署方式使用部署配置文件啟動方式總結試用了下,把之前的一個聊天機器人從改成了。預告下一篇將介紹如何使用一步一步創建一個聊天機器人。 簡介 Sanic 是一個和類Flask 的基于Python3.5+的web框架,它編寫的代碼速度特別快。除了像Flask 以外,Sanic 還支持以異步請求的方式處理請求。這意味著你可以使用新的 async/await ...
摘要:實例實例測試結果增加路由實例測試結果提供了一個方法,根據處理程序方法名生成。異常拋出異常要拋出異常,只需從異常模塊中提出相應的異常。 typora-copy-images-to: ipic [TOC] 快速開始 在安裝Sanic之前,讓我們一起來看看Python在支持異步的過程中,都經歷了哪些比較重大的更新。 首先是Python3.4版本引入了asyncio,這讓Python有了支...
摘要:最近借用了女朋友的公號,感覺如果只是用來發文章,太浪費微信給提供的這些功能了。想了想,先從最簡單的開始,做一個聊天機器人吧。是一款接口的,基于一系列規則和機器學習算法完成的聊天機器人。 最近借用了女朋友的公號,感覺如果只是用來發文章,太浪費微信給提供的這些功能了。想了想,先從最簡單的開始,做一個聊天機器人吧。 使用Python實現聊天機器人的方案有多種:AIML、chatterBot以...
閱讀 4002·2023-04-26 02:13
閱讀 2244·2021-11-08 13:13
閱讀 2729·2021-10-11 10:59
閱讀 1732·2021-09-03 00:23
閱讀 1301·2019-08-30 15:53
閱讀 2275·2019-08-28 18:22
閱讀 3050·2019-08-26 10:45
閱讀 727·2019-08-23 17:58