一个基于 FastAPI + SQLite + 原生 HTML/CSS/JavaScript 的轻量级前后端交互示例项目。
项目提供一个简单留言板:用户可以在网页上填写昵称和留言内容,前端通过 fetch 调用 FastAPI 接口,后端将留言保存到 SQLite 数据库,并支持查看和删除留言。
- 使用 FastAPI 提供后端 API
- 使用 SQLite 保存留言数据
- 使用原生 HTML/CSS/JavaScript 实现前端页面
- 支持新增留言、查看留言列表、删除留言
- 提供基础 API 测试
- 无需 React、Vue 或其他前端构建工具
.
├── app/
│ ├── __init__.py
│ ├── database.py
│ ├── main.py
│ ├── schemas.py
│ └── routes/
│ ├── __init__.py
│ └── messages.py
├── static/
│ ├── app.js
│ ├── index.html
│ └── styles.css
├── tests/
│ └── test_messages.py
├── .gitignore
├── README.md
└── requirements.txt
主要文件说明:
app/main.py:FastAPI 应用入口,注册路由并挂载静态文件app/database.py:SQLite 数据库连接和初始化逻辑app/schemas.py:请求和响应数据模型app/routes/messages.py:留言相关 APIstatic/index.html:前端页面结构static/styles.css:页面样式static/app.js:前端请求后端 API 的交互逻辑tests/test_messages.py:后端接口测试
- Python 3.10 或更高版本
- Windows PowerShell、CMD、Git Bash 或其他终端
进入项目目录:
cd "C:\Users\10654\Documents\New project 2"创建虚拟环境:
python -m venv .venv安装依赖:
.venv\Scripts\python -m pip install -r requirements.txt如果安装依赖时网络失败,可以换网络、开启代理,或使用国内镜像源:
.venv\Scripts\python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple在项目根目录运行:
.venv\Scripts\python -m uvicorn app.main:app --reload启动成功后,在浏览器打开:
http://127.0.0.1:8000
FastAPI 自动生成的接口文档:
http://127.0.0.1:8000/docs
GET /health响应示例:
{
"status": "ok"
}GET /api/messages响应示例:
[
{
"id": 1,
"author": "Ada",
"content": "Hello from FastAPI",
"created_at": "2026-05-14 10:30:00"
}
]POST /api/messages
Content-Type: application/json请求示例:
{
"author": "Ada",
"content": "Hello from FastAPI"
}响应示例:
{
"id": 1,
"author": "Ada",
"content": "Hello from FastAPI",
"created_at": "2026-05-14 10:30:00"
}DELETE /api/messages/{message_id}删除成功时返回 204 No Content。
如果留言不存在,返回:
{
"detail": "Message not found"
}项目默认使用 SQLite,启动应用时会自动创建数据库文件:
messages.db
该文件用于保存留言数据,已经在 .gitignore 中忽略,不会提交到 Git 仓库。
如果测试需要使用临时数据库,可以通过环境变量指定数据库路径:
$env:MESSAGE_BOARD_DB_PATH="test_messages.db"安装依赖后运行:
.venv\Scripts\python -m pytest当前测试覆盖:
- 健康检查接口
- 初始留言列表
- 新增留言
- 请求参数校验
- 删除已有留言
- 删除不存在留言时返回 404
说明依赖还没有安装。请先运行:
.venv\Scripts\python -m pip install -r requirements.txt可以换一个端口启动:
.venv\Scripts\python -m uvicorn app.main:app --reload --port 8001然后访问:
http://127.0.0.1:8001
停止服务后删除 messages.db 文件,再重新启动项目即可。应用会自动重新创建数据库表。
- 增加编辑留言功能
- 增加分页查询
- 增加用户登录
- 增加留言搜索
- 将 SQLite 替换为 MySQL 或 PostgreSQL