创建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      # 路由示例
相关推荐
骑士雄师2 分钟前
21.2 mcp-server-chart 图表化作用
python
葡萄皮sandy15 分钟前
SSE和WebSocket
网络·websocket·网络协议
满怀冰雪20 分钟前
01_LangChain是什么_带你理解LLM应用框架
python·langchain
酉鬼女又兒23 分钟前
零基础入门计算机网络网际层核心:IP数据报发送与转发完整流程、静态路由配置方法、路由环路成因与解决方案及历年考研经典例题深度解析
网络·tcp/ip·计算机网络·考研·职场和发展
稷下元歌33 分钟前
python核心基础,这关于基于Moveltg加 Ros2实战Python编程基础实课
开发语言·python
财经资讯数据_灵砚智能39 分钟前
基于全球经济类多源新闻的NLP情感分析与数据可视化(日间)2026年6月10日
大数据·人工智能·python·ai·信息可视化·自然语言处理·灵砚智能
Wonderful U42 分钟前
Python+Django实战|企业客户关系管理系统(CRM):客户档案、跟进记录、商机管理、合同签约、回款追踪、客户分层、数据分析
python·数据分析·django
Wonderful U42 分钟前
Python+Django实战|企业办公用品申领管理系统:物资入库、库存预警、申领审批、归还登记、损耗统计、供应商对账
android·python·django
放下华子我只抽RuiKe542 分钟前
FastAPI 全栈后端(八):部署与运维
运维·数据库·react.js·oracle·数据挖掘·前端框架·fastapi
qq_195821651 小时前
6. 应用层协议实现:CoE协议栈集成、对象字典配置、PDO映射
java·服务器·网络