来自 曙光 21 天打卡挑战 - Day1
学习 FastAPI & SQLModel.
FastAPI 是一个用于构建 Web 后端的 python 库,SQLModel 是配套的数据库操作库(使用 ORM)
大致过程:
先通读文档(说实话官方文档实在有点啰嗦,甚至从建表开始手把手教你 SQL),期间有啥不懂就问亲爱的 ds 老师(比如各种 Join 的区别);
然后 clone 下来官方 github 仓库 fastapi-fullstack-template,大致读了一遍项目结构,重点是理清多文件各模块的功能,
其中主要有
- routes/xxx.py: 负责分文件编写 api 端点
- db.py: 建立数据库连接,和初始化数据库
- deps.py: 提供 token 读取验证、数据库会话(session) 等,用于将依赖注入 api 端点函数
- models.py: 保存 SQL 表的 python class 表示,和 api 请求与响应的模型(两者是通用的,得益于 SQLModel)
- crud.py: 封装一些常用的数据库读写方法,比如 create_user,这些在 api 端点处理函数中都可以复用
- main.py: 不多说
项目使用 uv 构建,uv 提供了 python 版本管理、虚拟环境、包管理等,比裸 python 环境好用 100 倍,强力推荐!
用户鉴权部分涉及一些安全知识,稍复杂,来日再战罢。
事已至此,先睡觉吧 QAQ