首页 / 知识库 / 0基础入门-阅读资料 / 0基础-后台入门

第八章 总结与延伸

恭喜你完成了整个后台入门教程!本章回顾所学内容,并指出接下来可以探索的方向。


8.1 我们学到了什么

从零开始,我们走完了一个后台应用的完整开发流程:

知识地图

第一章  理解后台          →  前端、后端、数据库是什么,它们怎么配合
第二章  环境搭建          →  安装工具、创建项目、第一次跑起服务
第三章  FastAPI 核心      →  路由、参数、请求体、响应、自动文档
第四章  数据库入门        →  SQLite + SQLModel,用 Python 类操作数据库
第五章  增删改查          →  CRUD 四个接口,后台的核心工作
第六章  前后端联调        →  CORS 跨域、axios 调用、完整数据闭环
第七章  调试技巧          →  看报错、用工具、定位问题

核心技能

技能你已经掌握
搭建后台服务用 FastAPI 创建应用,用 uvicorn 启动
定义接口GET / POST / PUT / DELETE,路径参数、查询参数、请求体
操作数据库用 SQLModel 定义表、增删改查
前后端联调处理 CORS、用 axios 请求接口
调试排错看终端日志、用 /docs 测试、用 Network 面板排查

你做了什么

你亲手搭建了一个完整的 Todo 待办事项应用

┌──────────────────────────────────────────────────┐
│                                                  │
│   Vue 前端                                        │
│   ├── 输入框 + 添加按钮                            │
│   ├── 待办列表(勾选完成 / 点击删除)                │
│   └── 通过 axios 调用后端接口                       │
│                                                  │
│   FastAPI 后端                                    │
│   ├── POST   /todos      → 新增待办                │
│   ├── GET    /todos      → 查询所有待办              │
│   ├── GET    /todos/{id} → 查询单个待办              │
│   ├── PUT    /todos/{id} → 修改待办                 │
│   └── DELETE /todos/{id} → 删除待办                 │
│                                                  │
│   SQLite 数据库                                    │
│   └── todo 表(id, title, done)                    │
│                                                  │
└──────────────────────────────────────────────────┘

这个小项目虽然简单,但它涵盖了后台开发最核心的知识。所有复杂的系统,都是在这个基础上扩展的。


8.2 进阶方向

学完了基础,接下来可以根据兴趣探索以下方向(了解即可,不要求掌握):

方向一:用户认证

目前我们的接口是”裸奔”的——任何人都能访问。真实应用需要:

  • 注册:新用户创建账号
  • 登录:验证用户名和密码,发放 Token
  • 鉴权:每次请求带上 Token,后端验证身份

关键词:JWT(JSON Web Token)OAuth2

方向二:更强大的数据库

SQLite 适合学习和小项目,大型项目通常使用:

数据库特点
MySQL最流行的关系型数据库
PostgreSQL功能最强大的开源关系型数据库
MongoDB文档型数据库,存 JSON 格式的数据
Redis内存数据库,速度极快,常用于缓存

好消息是:SQLModel 切换数据库只需要改一行连接地址,业务代码不用动。

方向三:部署上线

开发完成后,让别人也能访问你的应用:

  1. 买一台云服务器(阿里云、腾讯云等)
  2. 把代码上传到服务器
  3. 用 Docker 或直接运行
  4. 配置域名和 HTTPS

方向四:AI + 后台

这也是我们这门 AI 应用开发课程最核心的方向:

@app.post("/chat")
def chat(message: str):
    # 调用大模型 API(如 OpenAI、通义千问等)
    response = call_ai_model(message)
    return {"reply": response}

学会了后台开发,你就可以:

  • 搭建自己的 AI 聊天接口
  • AI 应用的后台服务(管理对话历史、用户数据等)
  • 给 AI 应用加上数据库存储(保存聊天记录、用户偏好等)

后台开发 + AI 能力 = 你可以做出完整的 AI 产品。


附录 A:完整项目代码

models.py

from sqlmodel import SQLModel, Field


class TodoCreate(SQLModel):
    title: str
    done: bool = False


class TodoUpdate(SQLModel):
    title: str | None = None
    done: bool | None = None


class Todo(SQLModel, table=True):
    id: int | None = Field(default=None, primary_key=True)
    title: str
    done: bool = False

database.py

from sqlmodel import SQLModel, Session, create_engine

DATABASE_URL = "sqlite:///database.db"

engine = create_engine(DATABASE_URL, echo=True)


def create_db_and_tables():
    SQLModel.metadata.create_all(engine)


def get_session():
    with Session(engine) as session:
        yield session

main.py

from contextlib import asynccontextmanager
from fastapi import FastAPI, HTTPException
from fastapi.middleware.cors import CORSMiddleware
from sqlmodel import Session, select
from database import create_db_and_tables, engine
from models import Todo, TodoCreate, TodoUpdate


@asynccontextmanager
async def lifespan(app: FastAPI):
    create_db_and_tables()
    yield


app = FastAPI(lifespan=lifespan)

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


@app.get("/")
def index():
    return {"message": "Todo 后台服务已启动"}


@app.post("/todos", status_code=201)
def create_todo(todo: TodoCreate):
    with Session(engine) as session:
        db_todo = Todo.model_validate(todo)
        session.add(db_todo)
        session.commit()
        session.refresh(db_todo)
        return db_todo


@app.get("/todos")
def get_todos():
    with Session(engine) as session:
        todos = session.exec(select(Todo)).all()
        return todos


@app.get("/todos/{todo_id}")
def get_todo(todo_id: int):
    with Session(engine) as session:
        todo = session.get(Todo, todo_id)
        if not todo:
            raise HTTPException(status_code=404, detail="待办事项不存在")
        return todo


@app.put("/todos/{todo_id}")
def update_todo(todo_id: int, todo_update: TodoUpdate):
    with Session(engine) as session:
        todo = session.get(Todo, todo_id)
        if not todo:
            raise HTTPException(status_code=404, detail="待办事项不存在")

        todo_data = todo_update.model_dump(exclude_unset=True)
        todo.sqlmodel_update(todo_data)

        session.add(todo)
        session.commit()
        session.refresh(todo)
        return todo


@app.delete("/todos/{todo_id}")
def delete_todo(todo_id: int):
    with Session(engine) as session:
        todo = session.get(Todo, todo_id)
        if not todo:
            raise HTTPException(status_code=404, detail="待办事项不存在")

        session.delete(todo)
        session.commit()
        return {"message": "删除成功"}

requirements.txt

fastapi
uvicorn
sqlmodel

Vue 前端关键代码(axios 调用)

import axios from 'axios'

const API = 'http://127.0.0.1:8000'

// 获取所有待办
const res = await axios.get(`${API}/todos`)

// 新增待办
await axios.post(`${API}/todos`, { title: '买牛奶' })

// 修改待办(标记完成)
await axios.put(`${API}/todos/1`, { done: true })

// 删除待办
await axios.delete(`${API}/todos/1`)

附录 B:常用命令速查

命令作用
pip install fastapi uvicorn sqlmodel安装后端依赖
pip install -r requirements.txt根据清单安装依赖
uvicorn main:app --reload启动后端(热重载模式)
uvicorn main:app --reload --port 8001指定端口启动
uvicorn main:app --host 0.0.0.0 --port 8000允许外部访问
npm install axios在 Vue 项目中安装 axios
npm run dev启动 Vue 开发服务器

附录 C:推荐学习资源

资源链接
FastAPI 官方文档(中文)https://fastapi.tiangolo.com/zh/
SQLModel 官方文档https://sqlmodel.tiangolo.com/
HTTP 状态码大全https://developer.mozilla.org/zh-CN/docs/Web/HTTP/Status
axios 文档https://axios-http.com/zh/

教程到此结束。 你已经从零开始,理解了后台是什么,搭建了后端服务,操作了数据库,实现了前后端联调。这是一个很好的起点,接下来就可以基于这个基础去构建更复杂的 AI 应用了!