初识DRF

Web应用是什么

 11. 通过浏览器访问的应用程序都是Web应用
22. Web应用的模式:
3    C/S架构
4        c:client 客户端
5        s:server 服务端
6    B/S架构
7        b:browser  浏览器
8        s:server   服务端   
9
10    # 本质上b/s也是c/s
11 3. Web应用的优点:
12    - 1. 只需要一个浏览器
13    - 2. 节省客户端资源
14    - 3. 只需要更新服务端,立马影响客户端
15 4. Web应用的缺点:
16        - 1. 谷歌浏览器,火狐浏览器,ie浏览器,360浏览器.......
17        - 2. 服务端宕机,客户端也立马宕机,不能访问
18 5. Web框架
19    在规定的位置,写固定的代码

Web开发模式

11. 前后端不分离,混合开发
22. 前后端分离

API接口

1# 规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介
2类似于:https://api.map.baidu.com/place/v2/search

接口测试工具:Postman

 1# 浏览器只能测试get请求的接口
2# 通过postman工具可以测试任意个类型的请求方式:get,post,put,delete...
3
4针对post请求的数据,编码方式有3种:
5    1. urlencoded
6        在请求体中的格式:
7            name=ly&age=18  => request.POST
8    2. form-data
9        # 上传文件
10         # 普通数据
11                name=ly&age=18  => request.POST
12         # 文件数据
13            -----dsadsadsadsadsad-----
14            file数据    =>   request.FILES
15    3. json
16        在请求体中的格式:
17            {"name":"ly""age":18}  # 它在请求中就是原样
18
19            '''
20                在Django中如何获取json格式的数据:
21                    在request.POST中已经取不到值了,在request.body中取值
22            '''

23            # 针对request.body中的数据,需要自己处理
24
25# form表单只能提交urlencoded, form-data, 不能提交json格式的数据
26# <form action='' method='post' enctype='form-data'>
27
28'''
29    form上传文件:
30        1. method='POST'
31        2. enctype='form-data'
32'''

RESTful API规范

 1# RESTful是一种定义Web API接口的设计风格,尤其适用于前后端分离的应用模式中。
2
3# 10条
41. url链接一般都采用https协议进行传输
5    http: 数据明文传输
6    https:数据加密传输, http + ssl
72. 用api关键字标识接口url:
8     https://api.baidu.com
9    https://www.baidu.com/api
103. 在url链接中标识数据版本
11    https://api.baidu.com/v1
12    https://api.baidu.com/v2
134. 数据即是资源,均使用名词(可复数)
14    https://api.baidu.com/users
15    https://api.baidu.com/books
16    https://api.baidu.com/book  
17 5.  资源操作由请求方式决定 (重点)
18        https://api.baidu.com/books - get请求:获取所有书
19        https://api.baidu.com/books/1 - get请求:获取主键为1的书
20        https://api.baidu.com/books - post请求:新增一本书书
21        https://api.baidu.com/books/1 - put请求:整体修改主键为1的书 # 全部更新
22
23        https://api.baidu.com/books/1 - patch请求:局部修改主键为1的书 # 局部更新
24       https://api.baidu.com/books/1 - delete请求:删除主键为1的书
256. 过滤,通过在url上传参的形式传递搜索条件
26    https://api.example.com/v1/zoos?limit=10:指定返回记录的数量
27    https://api.example.com/v1/zoos?offset=10:指定返回记录的开始位置
287. 响应状态码
29    200, 301302, 404, 403, 500
30    # 业务状态码
31    100001
32    100002
33    100003
348.  错误处理,应返回错误信息,error当做key
35    {
36        error: "无权限操作"
37    }
389. 返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范
39    GET /books:返回资源对象的列表(数组)[{}, {}, {}]
40    GET /books/1:返回单个资源对象 {}
41    POST /books:返回新生成的资源对象
42    PUT /books/1:返回完整的资源对象
43    PATCH /books/1:返回完整的资源对象
44    DELETE /books/1:返回一个空文档
4510 需要url请求的资源需要访问资源的请求链接

序列化

1序列化: 把我们识别的数据转换成指定的格式提供给别人。
2反序列化:把别人提供的数据转换/还原成我们需要的格式

Django Rest_Framework

1'''
2    1. Django Rest_Framework 简称drf, 他就是django的第三方app
3    2. pip3 install djangorestframework
4    3. drf最新版本不支持django1.x, 升级django版本为:django2.x
5'''

posted @ 2022-01-04 11:13  一叶松  阅读(74)  评论(0编辑  收藏  举报