整理好了,这是一份 Django 后端开发(DRF)第 3 天的学习笔记,已精简为提纲式结构,保留核心知识点,删掉下载安装、版本数字等次要细节。
前后端开发模式(DRF day03)
一、两种开发模式
| 模式 | 后端 | 前端 | 模板渲染位置 | 数据返回 |
|---|---|---|---|---|
| 混合开发 | Django / Flask / Go(gin) / Java(JSP) | 模板语法(DTL、JSP 等) | 后端完成 | 渲染后的纯 HTML/CSS/JS 字符串 |
| 前后端分离 | 只写接口 | 只写 HTML/CSS/JS(vue/react/小程序/app) | — | JSON / XML 数据 |
混合开发执行流程(render(request, 'index.html', {...})):
- 拿到 HTML 模板
- 用变量替换模板语法(
{}、{%%}) - 以字符串形式返回前端
- 浏览器解析 HTML、应用 CSS、执行 JS
关键点:JS 在浏览器执行,模板语法在后端服务器执行。
二、API 接口
定义:规定前后台信息交互规则的 URL 链接,是信息交互的媒介。
一个 API 包含 4 个要素:
- URL:链接地址
- 请求方式:GET、POST、PUT、DELETE
-
请求参数(key-value 类型):
- 地址栏参数:
?name=lqz&age=19 - 请求体编码格式:
urlencoded(name=lqz&age=19)、json({"name":"lqz","age":19})、form-data(文件混合数据)
- 地址栏参数:
- 响应结果:JSON 或 XML
HTTP 请求结构:请求首行(协议/版本/地址/方式)、请求头(key-value)、请求体(编码格式)
三、接口测试工具
- 为什么不用浏览器:浏览器只能发 GET 请求。
- 主流工具:Apifox(Postman+Swagger+Mock+JMeter 一体)、Postman(已收费)、Postwoman,或用 requests 模块写代码。
- 常用功能:发送请求(地址/方式/参数/头/体)、查看响应;Collection 可把一组接口保存复用,支持导入导出。
四、RESTful 规范
前后端分离接口的约定俗成规范(10 条,可灵活遵循,公司也可能有自己规范):
-
数据安全:URL 用
https -
带 api 标识:
/api/xxx -
带版本标识:
/api/v1/ -
资源用名词(可用复数):
/v1/users -
请求方式决定操作(CURD):
- GET
/books→ 获取所有 - POST
/books→ 新增 - GET
/books/1→ 获取单个 - PUT
/books/1→ 整体修改 - DELETE
/books/1→ 删除
- GET
-
地址带过滤条件:
?name=大象 -
响应带状态码:HTTP 状态码 + 公司自定义码(如
{code:100}成功) -
响应带错误信息:
{code:101, msg:"用户名密码错误"} - 结果随操作规范:列表返回数组,单个/新增/修改返回对象,删除返回空文档
- 数据中带 URL 链接
五、序列化与反序列化(核心)
| 概念 | 含义 | 场景 |
|---|---|---|
| 序列化 | 把我们识别的数据(字典/列表/对象)→ 指定格式(JSON 字符串) | Django 查询得到的模型对象 → JSON 提供给前端 |
| 反序列化 | 把别人提供的数据 → 还原成我们需要的格式(模型对象) | 前端 JSON 字符串 → 模型对象,才能存入数据库 |
一句话:数据库对象 ↔ JSON 格式字符串 的双向转换。
六、DRF 安装快速使用
- 安装:
pip install djangorestframework --upgrade - 要求:Django 需 3.x 以上(2.x 需装对应旧版 DRF)
- 基础:创建 Book 表(id/name/price),实现增删改查