Sanic 擴充套件

veelion發表於2019-04-21

Sanic作為一款應用比較廣泛的非同步web框架,已經形成了比較成熟的技術鏈,其周邊的各種擴充套件應有盡有。

Sanic extension 擴充套件

擴充套件和外掛開發

安全

  • Sanic JWT:身份認證,JWT和許可權範圍。
  • Secure:為Python web 框架新增可選的安全頭和cookies的輕量級包。
  • Sessions:對session的支援,允許使用redis,memcache或記憶體。
  • CORS:對flask-cors的移植。
  • Sanic-JWT-Extended:提供對JWT的支援。
  • UserAgent:給request新增user_agent
  • Limiter:為sanic新增頻率限制。
  • sanic-oauth:支援多家的OAuth1/OAuth2的OAuth庫。
  • Sanic-Auth:Sanic的一種最小後端不可知的以session為基礎的使用者身份驗證機制。
  • Sanic-CookieSession:僅限客戶端基於cookie的session,類似於Flask的內建session。

文件

  • OpenAPI/Swagger:支援OpenAPI及Swagger UI。
  • Sanic-RestPlus:對Flask-RestPlus的移植。擁有SwaggerUI生成功能的全功能REST API。
  • sanic-transmute:從Python函式和類生成API,並自動生成Swagger UI或文件的Sanic擴充套件。

ORM和資料庫整合

  • Motor:對moter的簡單包裝。
  • Sanic CRUD:使用peewee模型生成CRUD REST API。
  • sanic-graphql:GraphQL與Sanic的整合。
  • GINO: 在SQLAIchemy核心之上的非同步ORM。
  • Databases:SQLAIchemy核心的非同步資料庫訪問,支援PostgreSQL,MySQL和SQLite。

單元測試

  • pytest-sanic:Sanic的pytest外掛,進行非同步測試。

專案建立模板

  • cookiecutter-sanic:在明確定義的專案結構中,可以在幾秒鐘內啟動並執行sanic應用程式。包括用於部署,單元測試,自動釋出管理和更改日誌生成的電池。

模板

  • Sanic-WTF:讓Sanic使用WTForm和CSRF(跨站點請求偽造)保護更容易。
  • Jinja2:支援Jinja2模板。
  • jinja2-sanic:Sanic的jinja2模板渲染器。

API Helper實用程式

  • sanic-sse: Sanic的Server-Sent Event實現。
  • Compress:對Flask-Compress的移植,輕鬆實現對Sanic響應的gzip壓縮。
  • Pagination:簡單的分頁支援。
  • Sanic EnvConfig:將環境變數拉入sanic配置。

i18n/l10n (國際化/本地化)支援

  • Babel:在Babel庫的幫助下讓Sanic應用支援國際化和本地化。

自定義中介軟體

  • Dispatch:受werkzeug的DispatcherMiddleware啟發的排程器,可以充當Sanic-to-WSGI的介面卡。

監測和報告

應用例子

猿人學banner宣傳圖

我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。

***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***

相關文章