创建FastAPI项目步骤

FastAPI 项目创建步骤

1. 创建项目根目录

复制代码
mkdir learnFastApi
cd learnFastApi

2. 创建 pyproject.toml(项目配置文件)

在项目根目录下创建,内容如下:

toml 复制代码
[project]
name = "fastapiapp"
version = "0.1.0"
requires-python = ">=3.12"
dependencies = [
    "fastapi>=0.136.1",
    "uvicorn>=0.47.0",
]

[project.scripts]
fastapiapp = "fastapiapp.application:main"

[tool.uv]
package = true

[[tool.uv.index]]
url = "https://pypi.tuna.tsinghua.edu.cn/simple"

注意

  • [project.scripts] 定义了命令行命令 fastapiapp,安装后可直接在终端运行。
  • [tool.uv] package = true 必须加上,否则 project.scripts 不会生效。
  • 如果不用清华镜像源,可以去掉 [[tool.uv.index]] 部分。

3. 创建源码目录结构

复制代码
mkdir -p src/fastapiapp/router

4. 创建 src/fastapiapp/__init__.py

空文件,标识 fastapiapp 是一个 Python 包。


5. 创建 src/fastapiapp/router/__init__.py

空文件,标识 router 是一个 Python 包。


6. 创建路由文件 src/fastapiapp/router/user.py

python 复制代码
from fastapi import APIRouter

router = APIRouter()


@router.post("/getMeaage")
def getsystem():
    return {"system": "fastapi"}

7. 创建 FastAPI 应用 src/fastapiapp/api.py

python 复制代码
from fastapi import FastAPI
from starlette.middleware.cors import CORSMiddleware
from fastapiapp.router import user

app = FastAPI(title="RAG API")

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*"],
    allow_methods=["*"],
    allow_headers=["*"],
)

app.include_router(user.router)

8. 创建入口启动文件

src/fastapiapp/application.py

python 复制代码
import uvicorn


def main():
    uvicorn.run("fastapiapp.api:app", host="0.0.0.0", port=8002, reload=False)

注意uvicorn.run 的第一个参数是 "fastapiapp.api:app",注意拼写,不要写成 fastpaiapp(少个 i)。

src/fastapiapp/__main__.py

python 复制代码
from fastapiapp.application import main

if __name__ == '__main__':
    main()

__main__.py 的作用:允许通过 python -m fastapiapp 来启动应用。


9. 安装依赖

bash 复制代码
uv sync

这条命令会:

  • 根据 pyproject.toml 安装 FastAPI、Uvicorn 等依赖
  • 创建 .venv 虚拟环境
  • 注册 fastapiapp 命令行命令

10. 运行项目

有两种运行方式:

方式一:使用注册的命令(需要 [tool.uv] package = true

bash 复制代码
uv run fastapiapp

方式二:使用 uvicorn 直接启动

bash 复制代码
uv run uvicorn fastapiapp.api:app --reload

方式三:通过 __main__.py 启动

bash 复制代码
uv run python -m fastapiapp

11. 访问 Swagger 文档

启动成功后,在浏览器中访问:

复制代码
http://localhost:8002/docs

即可看到 FastAPI 自动生成的 Swagger 交互式 API 文档页面,可以直接在页面上测试接口。

FastAPI 还提供 ReDoc 风格的文档,访问 http://localhost:8002/redoc 即可。


最终项目结构

复制代码
learnFastApi/
├── pyproject.toml          # 项目配置文件
├── uv.lock                 # 依赖锁定文件(自动生成)
├── .venv/                  # 虚拟环境(自动生成)
└── src/
    └── fastapiapp/
        ├── __init__.py
        ├── __main__.py      # python -m 入口
        ├── application.py   # 命令行入口(main 函数)
        ├── api.py           # FastAPI 应用实例
        └── router/
            ├── __init__.py
            └── user.py      # 路由示例
相关推荐
隔壁大炮9 小时前
MNE-Python 第4天学习笔记:数据预处理(一)—— 滤波与重参考
python·eeg·mne·脑电数据处理
深度先生9 小时前
pip 与包管理基础——你的第一个包管理工具
python
cws2004019 小时前
网络安全基本知识-2
运维·网络
持敬chijing9 小时前
BUUCTF-WEB详细解题攻略1(按解出数降序排序)
网络·web安全·网络安全·网络攻击模型·安全威胁分析·web
biter down9 小时前
6:控件操作与鼠标模拟
开发语言·python
沉下去,苦磨练!9 小时前
python的数据分析Pandas
python·数据分析·pandas
import_random9 小时前
[python]numpy.arange()函数的使用
python
其实防守也摸鱼9 小时前
软件安全与漏洞--软件安全测试
网络·软件测试·安全·web安全·安全性测试·软件安全·软件安全测试
深念Y9 小时前
Claude Code 搜索工具失灵,用 MCP + 提示词注入绕过 tavily
网络·搜索引擎·mcp·claudecode·中转站·tavily·搜索服务器