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示例。
我的公眾號:猿人學 Python 上會分享更多心得體會,敬請關注。
***版權申明:若沒有特殊說明,文章皆是猿人學 yuanrenxue.com 原創,沒有猿人學授權,請勿以任何形式轉載。***