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 # 路由示例