Sanic作為一款應用比較廣泛的異步web框架,已經形成了比較成熟的技術鏈,其周邊的各種擴展應有盡有。
擴展和插件開發
- Sanic-Plugins-Framework:輕松創建和使用Sanic插件的庫。
- sanic-script:給應用程序添加編寫命令支持的Sanic擴展。
安全
- 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的適配器。
監測和報告
- sanic-prometheus:Sanic的Prometheus指標。
- sanic-zipkin:通過aiozipkin輕松向zipkin / jaeger報告請求/功能/ RPC跟蹤。
應用例子
- Sanic-nginx-docker-example:使用docker-compose簡單易用的Sanic behined nginx示例。