FastAPI 是一个高性能 Web 框架,用于构建 API。
主要特性:
- 快速:非常高的性能,与 NodeJS 和 Go 相当
- 快速编码:将功能开发速度提高约 200% 至 300%
- 更少的错误:减少约 40% 的人为错误
- 直观:强大的编辑器支持,自动补全无处不在,调试时间更少
- 简易:旨在易于使用和学习,减少阅读文档的时间。
- 简短:减少代码重复。
- 稳健:获取可用于生产环境的代码,具有自动交互式文档
- 基于标准:基于并完全兼容 API 的开放标准 OpenAPI 和 JSON Schema
文档: https://fastapi.tiangolo.com
源码: https://github.com/tiangolo/fastapi
一、什么是fastapi?
FastAPI是一个现代的,快速(高性能)python web框架。基于标准的python类型提示,使用python3.6+构建API的Web框架。
二、搭建环境
python环境:Python 3.6+
FastAPI依赖于下面这两大重要的成果:
- web部分参考:Starlette
- 数据部分参考: Pydantic
三、fastapi安装
- 1、安装fastapi
pip install fastapi
- 2、如果用于生产,那么你还需要一个ASGI服务器,如Uvicorn或Hypercorn
pip install uvicorn
四、可选的依赖
1. Pydantic提供:
ujson
– 更快的JSONemail_validator
– 电子邮件的验证
2. Starlette提供:
requests
– 如果你想要使用TestClient
, 需要导入requests.aiofiles
– 如果你想使用FileResponse
orStaticFiles
, 需要导入aiofiles.jinja2
– 如果你想使用默认的模板配置,需要导入jinjia2.python-multipart
-如果要使用request.form()支持表单“解析”,则为必需。itsdangerous
-“SessionMiddleware”支持需要。pyyaml
– 如果需要SchemaGenerator
支持, 则为必要.graphene
-如果需要GraphQLApp
支持, 则为必要.ujson
– 如果你想使用UJSONResponse
, 则为必要.
3. FastAPI / Starlette提供:
uvicorn
– 加载和提供应用程序的服务器.
4. 一次性全部安装
pip3 install fastapi[all]