salvador
sanic
<title>不会js不会js</title>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示例。