likes
comments
collection
share

(二)什么是FastAPI?

作者站长头像
站长
· 阅读数 70

这里只是简单地介绍一下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访问

处理请求参数

路径参数

假设你想要创建一个根据用户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?

总结

FastAPI是一个强大而易用的工具,用来创建Web应用和API。它利用了Python的现代功能,使得开发过程快速且高效。通过简单的安装和几行代码,你就可以创建和运行一个Web应用。自动生成的文档也大大简化了API的使用和测试。

转载自:https://juejin.cn/post/7377578894591049738
评论
请登录