drf 01——web开发模式、restful规范、drf
WEB开发模式
api接口
前后端信息交互的媒介
前端(pc,小程序,app)------>后端路由------>视图函数------>返回json格式数据 这个东西被称为接口
写接口要有规范 即restful规范
接口测试工具
--postman
postman 就是一个替代浏览器,发送http请求的工具
因为用浏览器不能发送post请求,只能用代码写ajax发请求
通过postman可以发送任意请求
form-data 上传文件
urlencoded form、ajax表单默认
json 只能ajax,contentType:application/json
django中 使用form-data或者urlencoded编码 提交的数据从POST中取
json格式编码 只能从request.body内取 取出的为二进制字符串 还需json.loads()
restful规范
REST全称是Representational State Transfer 表征性状态转移
RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中
10条规范
1. 使用https数据交互
http+tsl/ssl=https 比http更安全 交互是加密传输
交互用json
2. 接口地址中带api标识
https://api.baidu.com/books 域名中
https://www.baidu.com/api 地址中
3. 接口地址中表示版本标识
-https://api.baidu.com/v1
4. 数据即是资源,均使用名词,不要出现动词
-删除图书接口
-好的:https://api.baidu.com/v1/books
-不好的:https://api.baidu.com/v1/delete-books
-新增图书:https://api.baidu.com/v1/books
5. 资源操作由请求方式决定
-新增图书:https://api.baidu.com/v1/books post
-删除图书:https://api.baidu.com/v1/books delete
-修改图书:https://api.baidu.com/v1/books put
-获取图书:https://api.baidu.com/v1/books get
6. 地址中带搜索条件
-https://api.example.com/v1/zoos?animal_type_id=1:指定筛选条件
-https://api.baidu.com/v1/books?name=红楼梦
7. 响应状态码
-http的响应状态码
-1xx 请求正在处理
-2xx 成功 200 请求成功 201 创建成功
-3xx 重定向 301 和 302 ---》问301和302的区别?一个是临时重定向一个是永久重定向
-4xx 客户端错误 403 和 404 403:没有权限 404:地址不存在
-5xx 服务端错误
-响应中带状态码
{code:100}
8. 响应中带错误信息
{code:999,msg:登陆失败}
9. 针对不同操作,服务器向用户返回的结果应该符合以下规范
GET /collection:返回资源对象的列表(数组)
-[{name:红楼梦,price:12},{name:西游记,price:12}]
GET /collection/resource:返回单个资源对象
-{name:西游记,price:12}
POST /collection:返回新生成的资源对象
-{name:西厢记,price:12}
PUT /collection/resource:返回完整的资源对象
-{name:西游记,price:12}
PATCH /collection/resource:返回完整的资源对象
-{name:西游记,price:12}
DELETE /collection/resource:返回一个空文档
-
10. 响应中带链接地址
drf
djangorestframework 的缩写,它是django的一个app(第三方插件),只能用在django框架上
# 可以帮助我们快速的写出符合restful规范的接口
分类:
drf
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用