(二)什么是FastAPI
这里只是简单地介绍一下FastAPI,更深入的解释和一些专业名词,如ASGI、uvicorn等,后续会出专题专门介绍。
什么是FastAPI
FastAPI是一个用Python编写的Web框架,用来创建API(应用程序编程接口)。API是允许不同软件系统相互交流的工具。FastAPI特别适合创建快速、高效的Web应用。
为什么选择FastAPI
- 简单:很容易上手,适合初学者。
- 快速:比其他许多框架运行得更快。
- 现代:利用了Python的新功能,比如异步编程(async/await)。
- 自动文档:会自动生成API文档,方便使用和测试。
基本概念
创建一个简单的应用
1. 安装FastAPI
打开命令行或终端,输入
pip install fastapi
pip install "uvicorn[standard]"
pip install "uvicorn[standard]"
是安装 uvicorn 及其标准依赖包的方式,括号中的 [standard] 指定了安装推荐的依赖,可以确保在使用 FastAPI 开发 Web 应用时,uvicorn 及其相关的依赖包都已正确安装,从而提升开发体验和应用性能。
2. 编写应用代码
创建一个文件,比如main.py,并写入以下内容
from fastapi import FastAPI
app = FastAPI()
@app.get("/")
def read_root():
return {"message": "Hello, World!"}
3. 运行应用
在命令行中输入
uvicorn main:app --reload
然后打开浏览器,访问 http://127.0.0.1:8000
,你会看到 {"message": "Hello, World!"}
。
详细步骤解释
1. 导入FastAPI
from fastapi import FastAPI
这行代码从FastAPI库中导入了FastAPI类。
2. 创建FastAPI实例
app = FastAPI()
这行代码创建了一个FastAPI应用实例,命名为app。
3. 定义路径操作(Route)
@app.get("/")
def read_root():
return {"message": "Hello, World!"}
@app.get("/")
:这是一个装饰器,表示当访问网站根目录/
时,执行下面的函数。def read_root()
:定义了一个名为read_root的函数。return {"message": "Hello, World!"}
:函数返回一个字典,转换成JSON格式后发送给客户端。
4. 运行应用
uvicorn main:app --reload
uvicorn
:这是一个ASGI服务器,用来运行FastAPI应用。main:app
:表示在main.py文件中找到名为app的FastAPI实例。--reload
:启用自动重载,当代码改变时,服务器会自动重启。
自动生成文档
FastAPI会自动生成API文档,你可以在以下两个URL访问
- 交互式API文档(Swagger UI):http://127.0.0.1:8000/docs
- 备用文档(ReDoc):http://127.0.0.1:8000/redoc
处理请求参数
路径参数
假设你想要创建一个根据用户ID返回用户信息的API
@app.get("/users/{user_id}")
def read_user(user_id: int):
return {"user_id": user_id}
当你访问 http://127.0.0.1:8000/users/1
时,返回 {"user_id": 1}
。
查询参数
假设你想要创建一个根据用户名和年龄返回用户信息的API
@app.get("/users/")
def read_user(name: str, age: int):
return {"name": name, "age": age}
当你访问http://127.0.0.1:8000/users/?name=John&age=30
时,返回{"name": "John", "age": 30}
。
请求体参数(后续专题讨论,这里简单说明)
定义Pydantic模型
from pydantic import BaseModel
class User(BaseModel):
name: str
age: int
定义视图函数
@app.post("/users/")
async def create_user(user: User):
return {"message": f"Hello, {user.name}! You are {user.age} years old."}
发送请求
总结
FastAPI是一个强大而易用的工具,用来创建Web应用和API。它利用了Python的现代功能,使得开发过程快速且高效。通过简单的安装和几行代码,你就可以创建和运行一个Web应用。自动生成的文档也大大简化了API的使用和测试。
转载自:https://juejin.cn/post/7377578894591049738