艾锑无限告诉你:什么是FastAPI

| 2020-02-25 13:49:27    标签:

 一、什么是fastapi?

FastAPI是一个现代的,快速(高性能)python web框架。基于标准的python类型提示,使用python3.6+构建API的Web框架。

The key features are:
fastapi的特点如下:

· 性能快:高性能,可以和NodeJSGo相提并论。

· 快速开发:开发功能速度提高约200%至300%

· 更少的Bug

· Fewer bugs: 减少40%开发人员容易引发的错误

· 直观:完美的编辑支持

· 简单: 易于使用和学习,减少阅读文档的时间。

· 代码简洁:很大程度上减少代码重复。每个参数可以声明多个功能,减少bug的发生。

· 标准化:基于并完全兼容API的开发标准:OpenAPI(以前称为Swagger)和JSON Schema

图片6.png

二、搭建环境

python环境:Python 3.6+

FastAPI依赖于下面这两大重要的成果:

· web部分参考:Starlette 

· 数据部分参考: Pydantic 

 

三、fastapi安装

· 1、安装fastapi

pip install fastapi

· 2、如果用于生产,那么你还需要一个ASGI服务器,如Uvicorn或Hypercorn

pip install uvicorn

 

四、可选的依赖

1. Pydantic提供:

· ujson - 更快的JSON

· email_validator - 电子邮件的验证

2. Starlette提供:

· requests - 如果你想要使用TestClient, 需要导入requests.

· aiofiles - 如果你想使用FileResponse or StaticFiles, 需要导入aiofiles.

· jinja2 - 如果你想使用默认的模板配置,需要导入jinjia2.

· python-multipart -如果要使用request.form()支持表单“解析”,则为必需。

· itsdangerous -“SessionMiddleware”支持需要。

· pyyaml - 如果需要 SchemaGenerator 支持, 则为必要.

· graphene -如果需要 GraphQLApp 支持, 则为必要.

· ujson - 如果你想使用 UJSONResponse, 则为必要.

图片7.png

3. FastAPI / Starlette提供:

· uvicorn - 加载和提供应用程序的服务器.

4. 一次性全部安装

pip3 install fastapi[all]