Python语言近年来人气爆棚。它普遍应用于网络开发运营,数据科学,网络开发,以及网络安全问题中。python
然而,Python在速度上彻底没有优点可言。mysql
在速度上,Java如何同C,C++,C#或者Python相比较?答案几乎彻底取决于要运行的应用。在这个问题上,没有完美的评判标准,然而The Computer Language Benchmarks Game 是一个不错的方法。golang
我想要回答这样一个问题:当运行同一个程序时,为何Python会 比其余语言慢2到10倍?为何咱们没法将它变得更快?redis
今天,咱们不纠结以上哪一种缘由对性能影响最大,而是来谈谈当下Python3.7中,咱们有怎样的方法让他变得比想象中的快,并且快不少sql
Python在3.5版本中引入了关于协程的语法糖async和await,这意味着咱们可使用协程的方式来编写Python应用程序,这会让咱们的Python代码像Node同样,让他变成异步方式运行数据库
固然,这并非咱们今天的目标安全
在众多的Web框架中,Django、Tornado、Flask已经相对成熟,Tornado等框架也能够进行异步方式的选择,但今天咱们都不讲网络
咱们要讲的是当下比较强悍的 Sanic
session
为何要讲Sanic,我想最主要的的缘由是他足够快,并且能够进行快速构建,他写起来相似Flask,口说无凭,看图框架
这是官方提供的 基准测试结果
![]()
Sanic的开发者说他们的灵感来自于这篇文章 uvloop: Blazing fast Python networking
快(爽)到起飞
构建速度快
原生支持 async/await 语法
社区慢慢活跃,相比以前的不成熟慢慢出现一些优秀的插件
自动分配&管理进程
只是简单说一下感觉,今天的目的不是为了教你们如何使用Sanic,而是但愿更多的人加入Sanic,体验到Sanic以及更多优秀的框架的出现带给咱们的便捷
说了这么多,还有一个问题,个人Web使用了协程,那么意味着我在操做数据库时,使用常规的pymysql以及psycopg2会阻塞咱们的线程,咱们的Web服务再快,卡在数据库也是徒劳,那么接下来为你们带来一些我经常使用的协程支持库
这是我平时用的比较多的一些库,我的喜爱pg,至于mysql等其余数据库,你们能够自行搜索
Sanic问世以来,我已经利用它构建过大大小小的Web应用程序,包括他日益完善的社区以及各方面的支持,例如sanic_session等库的出现,让他再也不显得那么吃力,让他再也不面对大型生产环境而无能为力,到目前为止我一直在热衷于探索他的小插件,若是大家有更好的Sanic支持,请留言
我会抽时间将Sanic以及全家桶的教程更新在下方,若是懒,懒,懒的看官方文档,就等我(大哥)更新吧!