fastapi项目开始
搭建一个 FastAPI 项目并配置好本地调试环境(Debugging)是开发高效Web应用的第一步。
以下是完整的一站式搭建与配置指南:
🛠️ 第一步:初始化项目环境
- 创建项目目录并进入:
bash
mkdir my_fastapi_project cd my_fastapi_project请谨慎使用此类代码。
- 创建并激活虚拟环境(隔离依赖):
bash
python -m venv venv # Windows 激活命令: venv\Scripts\activate # macOS/Linux 激活命令: source venv/bin/activate请谨慎使用此类代码。
- 安装核心依赖:
bash
pip install fastapi uvicorn请谨慎使用此类代码。
📝 第二步:编写核心代码
在项目根目录下创建一个
main.py 文件,并写入以下最小可行性代码:python
from fastapi import FastAPI
app = FastAPI(title="我的首个 FastAPI 项目")
@app.get("/")
def read_root():
return {"message": "Hello World"}
@app.get("/items/{item_id}")
def read_item(item_id: int, q: str = None):
return {"item_id": item_id, "q": q}
if __name__ == "__main__":
import uvicorn
# 这一步对后续的直接运行调试非常重要
uvicorn.run("main:app", host="127.0.0.1", port=8000, reload=True)
请谨慎使用此类代码。
🐞 第三步:配置主流 IDE 的调试环境
推荐使用 VS Code 或 PyCharm 进行断点调试。
选项 A:使用 VS Code(推荐)
- 在项目根目录下创建一个名为
.vscode的文件夹。
- 在该文件夹内新建
launch.json文件,并粘贴以下配置:json{ "version": "0.2.0", "configurations": [ { "name": "FastAPI: Current File", "type": "python", "request": "launch", "program": "${file}", "console": "integratedTerminal", "justMyCode": true } ] }请谨慎使用此类代码。
- 如何调试:
- 打开
main.py。 - 在代码行号左侧点击红点(设置断点)(例如第 10 行
return处)。 - 按下
F5键启动调试。
- 打开
选项 B:使用 PyCharm (Professional版)
- 点击右上角的 Add Configuration(添加配置)。
- 点击左上角的
+号,选择 FastAPI(如果没有,选择 Python)。
- 配置参数:
- Application: 选择
main.py - Uvicorn 运行参数(如果选的Python模板): Script path 填写
venv里的uvicorn路径,Parameters 填写main:app --reload。
- Application: 选择
- 如何调试: 在代码左侧点击设置断点,点击右上角的绿色小甲虫(Debug)图标。
🚀 第四步:验证与测试
- 启动调试后,打开浏览器访问:
http://127.0.0,你应该能看到{"message": "Hello World"}。
- 访问 FastAPI 自动生成的交互式文档:
- 接口文档 (Swagger UI):
http://127.0.0 - 备用文档 (ReDoc):
http://127.0.0
- 接口文档 (Swagger UI):
- 触发断点: 在 Swagger UI 中点击
/items/{item_id}接口并发送请求,你的代码就会在 IDE 对应的断点处暂停,此时你可以自由查看变量状态。
如果你想继续完善这个项目,我们可以聊聊下一步。请问你接下来需要集成数据库(如 PostgreSQL/MySQL),还是需要设计多文件的项目目录结构(路由拆分)?
默认为main.py
事实上
{
"version": "0.2.0",
"configurations": [
{
"name": "FastAPI: app.py",
"type": "python",
"request": "launch",
"module": "uvicorn",
"args": [
"app:app",
"--reload"
],
"cwd": "${workspaceFolder}",
"console": "integratedTerminal",
"justMyCode": true
}
]
}
是app.py
漫思
浙公网安备 33010602011771号