当前位置:   article > 正文

FastAPI学习(一)——介绍+并发测试结果+正确打开方式(Python Web框架--异步、高并发、后台)_fastapi web请求qps一直是1

fastapi web请求qps一直是1

最近发现一个很nice的python web框架!
官方介绍是:
FastAPI是一种现代,快速(高性能)的Web框架,用于基于标准
Python类型提示使用Python 3.6+构建API。


主要功能是(官方内容):

快速: 非常高的性能,看齐的NodeJS和GO,现有最快的Python框架之一。
快速编码: 将功能开发速度提高约200%至300%。
更少的错误: 减少约40%的人为错误(开发人员)。直观:强大的编辑器支持。完成无处不在。调试时间更少。
简易: 旨在易于使用和学习。减少阅读文档的时间。 短:最小化代码重复。每个参数声明中的多个功能。更少的错误。
健壮: 获取可用于生产的代码。具有自动交互式文档。
基于标准: 基于(并完全兼容)API的开放标准:OpenAPI(以前称为Swagger)和JSON Schema。

基于以下第三方包开发(部分):
1、 Starlette基于ASGI异步网关协议接口的框架 。
2、 Pydantic数据验证和设置管理库。
3、 Uvicorn基于 asyncio(异步io) 开发的一个轻量级高效的 web 服务器框架。
4、 Requests HTTP库。
5、 Aiofiles 如果要使用FileResponse(文件相应)静态文件。
6、 Jinja2 网页模板渲染引擎。
7、 Python-multipart 表单解析。


在这里插入图片描述
官网:
FastAPI官网
简单介绍一下:
根据Github显示,这个项目2018年12月才开始,可以说非常新的框架了,到目前为止,是0.49.0版本,获得9700+星,Github地址:

https://github.com/tiangolo/fastapi

据说是最快的异步并发框架,
(B站学习网址https://www.bilibili.com/video/av93282315

群友并发测试结果

在这里插入图片描述
可以媲美NodeJS和GO,这就厉害了!之前GO火就是因为并发牛,很多PYTHON开发转GO也是因为这个,所以专门找了一下发现有位叫“梦想做小猿”的老哥做了测试。
下面是某老哥测试结果(用的是webbench测试工具):
在这里插入图片描述
从结果里面看,虽然比GO慢了点,但是已经非常不错了,官方也给出了测试结果:

**我也做了测试,**但是我发现结果远远不如这位老哥,原因如下:1、我用的是win10开发FastAPI,所以win10做服务器真是太辣眼睛了
2、我用的是自带的run方法,这根本谈不上并发和部署,所以也不行。
3、Flask的测试,run方法的服务,肯定也是不理想。
所以上面这个测试结果也只能参考,并不严谨!

官方测试结果

此外,学习了一晚上,有以下个人总结:
1、它的代码编写习惯和Flask很相似。熟悉Flask的小伙伴上手会很快。
2、官网的帮助还是非常棒的,逻辑好,够分量,够仔细。
3、用了不少当前许多优秀的PYTHON模块,作者真心牛。
4、目前比较新,学习教程基本没有,B站有个油管翻译,但是机翻太糟糕了,还不如原版。
5、目前还没到正式版,但0.4.0版本就已经在Github得到9.7k+ star 。

更多教程请看b站视频

点我进入B站视频

安装

方法:

pip install fastapi[all]
  • 1

是的,需要安装两个包,fastapi和uvicorn。

Hello World!!!

官方教程是通过一个main.py文件然后CMD通过‘uvicorn main:app --reload’启动,个人觉得麻烦不推荐,直接用下面的方法。

正确的打开方式 “Helloworld,FastAPI”

因为我们已经安装了uvicorn,所以通过它来启动才是正确的打开方式,同时,配合pycharm:
main.py文件:

# -*- coding: UTF-8 -*-

from fastapi import FastAPI
import uvicorn as u

app = FastAPI(debug=True)

@app.get("/")
async def root():
    return {"message": "Helloworld,FastAPI"}

if __name__ == '__main__':
    u.run(app)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

然后直接Ctrl+Shift+F10从Pycharm直接启动:
在这里插入图片描述
直接点击超链接:
在这里插入图片描述
在这里插入图片描述
(小吐槽一下Flask,萌新的我当初在用Flask的时候,常常莫名其妙报错,有坑!这个FastAPI貌似目前还没啥坑,看过几位前辈的使用感受,貌似也这么觉得。)

此外,还有个特色功能,比较实用。

http://127.0.0.1:8000/docs
  • 1

进入 交互式API文档 ,Interactive API docs 。

http://127.0.0.1:8000/redoc
  • 1

进入 替代API文档 ,Alternative API docs。

最后,感谢这位老哥。FastAPI作者,Sebastián Ramírez,德国柏林。
在这里插入图片描述
(由于没有什么教程,所以我通过官网给的教程进行学习)
官网教程地址https://fastapi.tiangolo.com/tutorial/

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/883957
推荐阅读
相关标签
  

闽ICP备14008679号