文章目录
为什么选择FastAPI?
- python web开发:
- Django: 适合大型复杂项目;
- Flask:适合灵活开发,搭建小型项目;
- FastAPI: 兼具开发快捷和高性能的特点;
- 编译时检查数据类型;
- 支持异步;
FastAPI支持的功能
-
自动生成API文档:依据类型提示和OpenAPI规范,自动生成详细API文档,还提供Swagger UI和ReDoc可视化界面,方便测试与对接。
- Swagger UI:例如http://127.0.0.1:8000/docs
- ReDoc:例如http://127.0.0.1:8000/redoc
-
数据验证与序列化:内置数据验证机制,按类型提示验证输入数据,自动返回错误信息。还能轻松实现数据的序列化和反序列化。
-
依赖注入:支持依赖注入模式,分离通用功能,提高代码复用性和可维护性,避免重复代码。
-
支持多种请求方法:全面支持GET、POST、PUT、DELETE等HTTP请求方法,适配各种业务场景。
FastAPI的安装
python
# fastapi项目是一个Web应用
pip install fastapi
# UVicorn 是一个支持 ASGI 的 Web 服务器,它能够运行符合 ASGI 规范的 Python Web 应用程序,例如 FastAPI 应用。
pip install uvicorn
第一个FastAPI应用
python
from fastapi import FastAPI
# 创建一个fastapi实例
app = FastAPI()
@app.get("/")
def root():
# 返回一个包含信息的字典
return {"message": "欢迎来到FastAPI的世界"}
运行应用
-
路径区分
-
当工作目录跟main.py文件路径一致时,运行以下命令
pythonuvicorn main:app --reload
-
当工作目录跟main.py文件路径不一致时,main:app中的main要替换成从当前工作目录到main.py的相对路径,如下:
python# 代表工作目录是在app01文件夹那一层,然后main.py在文件夹app01文件夹里面注意中间是用"."连接,类似与包的导入 uvicorn app01.main:app --reload
-
-
uvicorn:是我们之前安装的ASGI服务器
-
main:app:表示我们要运行"main.py"文件中的app实例。
-
reload:它会让Uvicorn在代码发生变化时自动重新加载应用,