FastAPI 框架,高性能,易于学习,高效编码,生产可用
文档: https://fastapi.tiangolo.com
源码: https://github.com/tiangolo/fastapi
关键特性:
-
快速:可与 NodeJS 和 Go 比肩的极高性能(归功于 Starlette 和 Pydantic)。最快的 Python web 框架之一。
-
高效编码:提高功能开发速度约 200% 至 300%。*
- 更少 bug:减少约 40% 的人为(开发者)导致错误。*
- 智能:极佳的编辑器支持。处处皆可自动补全,减少调试时间。
- 简单:设计的易于使用和学习,阅读文档的时间更短。
- 简短:使代码重复最小化。通过不同的参数声明实现丰富功能。bug 更少。
- 健壮:生产可用级别的代码。还有自动生成的交互式文档。
- 标准化:基于(并完全兼容)API 的相关开放标准:OpenAPI (以前被称为 Swagger) 和 JSON Schema。
教程开始》》》》》》》》》》》》》》》
- 安装v3.6+的Python环境(已安装请忽略)
- 安装pip安装FastAPI及服务器
-
pip install fastapi
pip install uvicorn[standard]
最简单的 FastAPI 文件可能像下面这样:
-
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"}
将其复制到
main.py
文件中。运行实时服务器:
-
PS D:\zxz\Pycharm_workspace\FastApiProject> uvicorn main:app --reload ?[32mINFO?[0m: Will watch for changes in these directories: ['D:\\zxz\\Pycharm_workspace\\FastApiProject'] ?[32mINFO?[0m: Uvicorn running on ?[1mhttp://127.0.0.1:8000?[0m (Press CTRL+C to quit) ?[32mINFO?[0m: Started reloader process [?[36m?[1m10128?[0m] using ?[36m?[1mwatchgod?[0m ?[33mWARNING?[0m: The --reload flag should not be used in production on Windows. ?[32mINFO?[0m: Started server process [?[36m22372?[0m] ?[32mINFO?[0m: Waiting for application startup. ?[32mINFO?[0m: Application startup complete.
打开浏览器访问 http://127.0.0.1:8000。
-
可以看到以下内容
-
{ "message": "Hello World" }
交互式 API 文档¶
-
总结¶
- 导入
FastAPI
。 - 创建一个
app
实例。 - 编写一个路径操作装饰器(如
@app.get("/")
)。 - 编写一个路径操作函数(如上面的
def root(): ...
)。 - 运行开发服务器(如
uvicorn main:app --reload
)。