创建一个简单的FastAPI Web应用程序

示例代码

前提:虚拟环境中已下载FastAPI框架,包含uvicorn(ASGI服务器)。并且虚拟环境已激活。

在我的项目目录fastapi_project下创建一个名为books.py的文件,代码如下:

from fastapi import FastAPI

app = FastAPI()

@app.get('/books')
async def get_all_books():
    books = {
        1: {'标题': 'Python编程', '分类': '编程'},
        2: {'标题': '图解HTTP', '分类': '计算机网络'},
    }
    return books

在终端(当前工作路径在FastAPI项目目录下)输入指令uvicorn books:app --reload
image

打开 http://127.0.0.1:8000/books 链接,页面显示如下:
image

逐个分析

导入FastAPI类

from fastapi import FastAPI是导入FastAPI类,这个类包含Python Web应用程序相关的方法和属性,是使用FastAPI框架的主要入口。

下载FastAPI框架到虚拟环境成功后,在虚拟环境目录下的第三方库目录虚拟环境目录\Lib\site-packages中能找到fastapi目录,它就是FastAPI框架的一个Python包(目录中含有__init__.py文件)。
image
fastapi包中有一个名为applications.py的文件,这个文件中定义了FastAPI类的具体实现。
image
fastapi包的__init__.py文件中导入了applications.py文件中的FastAPI,而导入一个包时会先执行一遍包中的__init__.py文件,所以可以直接通过fastapi包来导入FastAPI类。
image

实例化FastAPI类

app = FastAPI()是实例化FastAPI类,它表示创建一个FastAPI应用对象,这个应用实例可以定义路由和把uvicorn转交的HTTP请求分发到对应的处理函数。

注册路由

注册路由包含定义路由(HTTP请求方法与路径)和对应的处理函数。

@app.get('/books')
async def get_all_books():
    books = {
        1: {'标题': 'Python编程', '分类': '编程'},
        2: {'标题': '图解HTTP', '分类': '计算机网络'},
    }
    return books

定义路由

其中@app.get('/books')是定义路由,表示接收路径为/books并且方法为GET的HTTP请求。

FastAPI类中定义了get()方法,它返回self.router属性的get()方法。
image
FastAPI类初始化时定义了self.router属性,它是APIRouter类的实例,它被组合到了FastAPI类中。
image
FastAPI中的路径操作(path operation)指定义一个完整的API,包含路径、HTTP请求方法和处理函数。 而APIRouter类的get()方法用于注册路径操作中方法为 GET 的那一种——即往路由清单里添加一条“路径 + GET 请求方法 + 处理函数”的完整 API 定义。
image
而APIRouter类的get()方法的返回值为self.api_route,api_route是APIRouter类的一个方法(函数),它返回一个装饰器,这个装饰器的作用是接收处理函数,把它连同路径、GET 方法一起打包登记进路由清单,然后把函数原样返回。@app.get('/books') 这行代码的最终效果,就是注册一条方法为 GET 的路径操作。
image

定义处理函数

紧接在装饰器函数@app.get('/books')之后的就是处理函数,以下代码是展示所有图书,返回JSON格式:

async def get_all_books():
    books = {
        1: {'标题': 'Python编程', '分类': '编程'},
        2: {'标题': '图解HTTP', '分类': '计算机网络'},
    }
    return books

运行FastAPI应用程序

使用uvicorn
uvicorn 是能运行 FastAPI 应用程序的 ASGI 服务器。在项目目录的虚拟环境下输入命令uvicorn books:app --reload即可运行:books:app 表示books.py 文件中的 app 应用实例。uvicorn的使用格式为 uvicorn 应用 选项,选项可省略;--reload 表示开发模式,代码修改后 uvicorn 会自动重启服务器并加载新代码,刷新浏览器即可看到变化。运行成功后即可打开链接http://127.0.0.1:8000/books查看编写好的FastAPI应用。
image
使用fastapi.exe

  • 生产模式:fastapi run books.py
  • 开发模式:fastapi dev books.py

相关链接

uvicorn配置方法
面向对象概念-组合

posted @ 2026-11-06 19:11  松鼠q  阅读(2)  评论(0)    收藏  举报