python sanic_关于python-sanic使用的理解

之前一直在使用flask框架做一些工具性的应用,所以也没有因为性能影响,知道有一次工作中要在flask中读取一个比较大的文件,只能去使用asyncio避免io阻塞。后来自己也在网上了解和被同事安利了quart和sanic这两个异步框架,这两个框架都是基于uvloop的,quart更像flask,甚至可以patch一下就可以使用flask的扩展,而且已经实现了http2.不过浏览了一下github,发现sanic更受开发者的欢迎,有许多特别帮的sanic扩展,使用sanic也不久大概1个多月吧,大概使用下来sanic有这几点让我感觉还不错。

1.app.run(host='',post=xxx,workers=4)

sanic可以在原生的启动里直接使用多线程启动,只要设置一下workers,但是这个方法会导致很多问题,比如使用想加入后台定时任务,使用app.add_task(test()),启动以后test()会运行四次,不得不老老实实使用celery。

2.HTTPMethodView

sanic这个模块十分良心,感觉也没有必要去使用蓝图,只需要在class下写好相应的方法,最后把它app.add_route(view, '/')就搞定了。

3.Middleware

sanic的中间件使用率还是非常高的,比如初始化数据库的线程池,aiohttp的连接池之类的

当然让我选择sanic比较重要的因素还是它的扩展丰富和源代码的更新速度较快;有几个是我比较经常使用的扩展。

1.sanic-jwt(token)和sanic-auth(session) 包含了基本的用户认证和路由保护

2.gino 一个asyncpg的的sqlachmedy

3.sanic-cors 实现跨域访问很方便的扩展

关于其他扩展由于不太需要所以没有怎么额使用过

HTTP2:

sanic到目前为止并没有merge http2模块,好像是因为使用http2会使请求速度减慢35%,期待在不久sanic可以使用http2.

最后欢迎使用sanic大神指教!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值