#FastAPI是一个现代、高性能的Pythonweb框架,旨在快速构建API
今天我们要学习的是Python界的一颗新星——FastAPI。这个库可以让我们轻松构建出高性能的API,而且开发效率超高。无论是搭建Web后端,还是开发微服务,FastAPI都能帮你轻松搞定。
那么,让我们一起来探索这个强大的工具吧!
1. FastAPI是什么?
FastAPI 是一个用于构建API的现代、快速(高性能)web框架,基于Python 3.6+,充分利用了Python的新特性。其主要特点是速度快、编码量少、bug少。听起来是不是很诱人?
FastAPI这个名字就体现了它的两大特点:Fast(快速)和API(应用程序接口)。它不仅运行速度快,开发速度也非常快。用FastAPI写代码,就像写普通的Python函数一样简单!
2. 安装FastAPI
在开始使用FastAPI之前,我们需要先安装它。打开终端或命令提示符,输入以下命令:
pip install fastapi
pip install uvicorn
这里我们还安装了 uvicorn,它是一个ASGI服务器,用于运行我们的FastAPI应用。
3. 创建你的第一个FastAPI应用
好了,现在让我们来创建一个最简单的FastAPI应用吧!
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
async def root():
return {"message": "Hello World"}
看到了吗?就这么几行代码,我们就创建了一个API!让我来解释一下:
- 首先,我们导入了FastAPI。
- 然后,我们创建了一个FastAPI的实例,称之为
app
。 - 接着,我们使用
@app.get("/")
装饰器来告诉FastAPI,这个函数将处理GET请求,路径是"/"(也就是根路径)。 - 最后,我们定义了一个异步函数
root()
,它返回一个包含消息的字典。
小贴士:FastAPI默认支持异步函数,这可以大大提高应用的性能哦!
4. 运行你的FastAPI应用
接下来,运行这个应用。将上面的代码保存为 main.py
,然后在终端中输入:
uvicorn main:app --reload
这行命令的意思是:使用uvicorn运行 main.py
文件中的 app
对象,--reload
参数表示当代码发生变化时自动重新加载。
现在,打开浏览器,访问 http://127.0.0.1:8000
,你应该能看到一个JSON响应:
{"message": "Hello World"}
恭喜你!你的第一个FastAPI应用已经成功运行了!
5. 添加路径参数
FastAPI允许我们轻松添加路径参数。看看这个例子:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/{item_id}")
async def read_item(item_id: int):
return {"item_id": item_id}
在这个例子中,我们定义了一个新的路径 /items/{item_id}
,其中 {}
表示路径参数。item_id
参数会自动获取URL中的值,而且FastAPI会自动进行类型检查和转换(在这里,item_id
必须是整数)。
6. 查询参数
除了路径参数,FastAPI还支持查询参数。看看这个例子:
from fastapi import FastAPI
app = FastAPI()
@app.get("/items/")
async def read_item(skip: int = 0, limit: int = 10):
return {"skip": skip, "limit": limit}
在这个例子中,我们定义了两个查询参数:skip
和 limit
。用户可以通过 URL/items/?skip=20&limit=30
来指定这些参数。如果用户没有指定,FastAPI会使用默认值。
7. 请求体
当我们需要发送更多数据时,通常会使用POST请求和请求体。FastAPI让处理请求体变得非常简单:
from fastapi import FastAPI
from pydantic import BaseModel
app = FastAPI()
class Item(BaseModel):
name: str
price: float
is_offer: bool = None
@app.post("/items/")
async def create_item(item: Item):
return {"item_name": item.name, "item_price": item.price}
在这个例子中,我们使用Pydantic模型来定义请求体的结构。FastAPI会自动验证请求数据的正确性,如果数据无效,它会返回清晰的错误信息。
8. 自动生成API文档
FastAPI的一个超棒的特性是它可以自动生成交互式API文档。当你运行FastAPI应用时,访问 /docs
路径,你会看到一个基于 SwaggerUI 的美观文档。
例如,访问 http://127.0.0.1:8000/docs
。
这个文档不仅列出了所有的API端点,还允许你直接在浏览器中测试这些API,非常方便!