竹笋

首页 » 问答 » 常识 » 性能是Flask的3倍比PHP7还快
TUhjnbcbe - 2020/11/30 2:03:00
白癜风专病专治 http://m.39.net/pf/a_7239999.html

天下武功,唯快不破。在软件开发中更是如此,“快”能从多方面提升用户体验。谈到Python,它似乎天生就和速度无关,你可能很熟悉Django、Flask这些框架,虽然开发效率的确不错,但是速度就一言难尽。那么在前后端分离开发的时代,有没有能拿得出手的PythonWeb框架呢?当然是有的,FastApi它来了。

一、为什么是FastApi?

人们在介绍FastApi的时候通常会说“FastApi”是一个高性能的异步WEB框架。我相信没有哪个程序员会跟“高性能”过不去,这往往也是我们所追求的东西。fastapi具有并发性能强、能够快速上手、容错能力强、自动生成交互式文档的特点,这些都是我们选择它的理由。

二、到底有多快?

很多人介绍FastApi框架时,经常说其并发性能能够和NodeJS以及Go媲美,其实言过其实。在Go语言中文社区中梦想做小猿分别对Go、Flask、FastApi做了性能测试,迫于篇幅限制,我这里直接放结果:

FastAPI:并发30秒:Speed=pages/min,bytes/sec

Flask:并发30秒:Speed=pages/min,bytes/sec

Go:并发30秒:Speed=pages/min,bytes/sec

可见Go还是很强大的,但是fastapi已经远远超过了同为python框架的flask。

与PHP7对比:

分别用PHP7、FastAPI从mongodb数据库中取出相同的数据做成接口,相同参数得到相同的数据结果,速度如下:

FastApi用时43.06ms:

PHP7用时43.73ms:

经过多次测试,成绩较为稳定,无需取平均值,由此看来,FastApi速度上相比于其他Python框架,是占有绝对优势的!

三、安装相关模块

FaseApi这么快,想必你已经迫不及待想要了解如何使用了。接下来我们讲讲如何开始第一个FastApi项目。

安装FastApi执行pipinstallfastapi

由于FastApi还需要一个ASGI服务框架uvicorn,需要执行pipinstalluvicorn来安装uvicorn。

注意Linux下一般会报错如下:

Centos执行yuminstallpython3-devel,Ubuntu执行sudoapt-getinstallpython3-dev,即可解决问题,非常简单!

四、Hello,API

现在就来快速上手吧:

第一个api:

创建文件zhiliao.py,码代码:

#-*-coding:utf-8-*-fromfastapiimportFastAPI#创建一个FastApi实例app=FastAPI()#创建访问路径,下面的函数用来处理"/"的GET请求

app.get("/")defread_root():return{"Hello":"Api"}

然后在zhiliao.py文件所在目录,执行uvicornzhiliao:app--reload

其中,zhiliao是py文件名,冒号后面的app是我们在代码中创建的FastAPI实例,这一点类似Flask,其他参数等下会详细说到。

执行之后,得到反馈信息。

可以看到Uvicornrunningon[

1
查看完整版本: 性能是Flask的3倍比PHP7还快