概念:
前: 主要以页面的美观和流程,兼容三部分
后:主要以三高
需要懂数据库、懂框架操作、懂模版前端
指责划分不明确会造成团队之间沟通混乱,代码不统一,前后端技能水平层次不齐的水平
成本高本质上这些软件 APP 用的都是同一套数据,由于不分离的情况,还需要给每一个平台不同的 APP 开发多套后端,这个开发成本很高
服务器压力大渲染页面本应该是在客户端完成,如今都是在服务端渲染好之后再返回给用户,那么在高并发的情况下,会大量占用服务器的资源
2.restful风格| 请求方式 | 属性 |
|---|---|
| POST/add-goods | 增加商品 |
| POST/delete-goods | 删除商品 |
| POST/update-goods | 修改商品 |
| GET/get-goods | 查询商品 |
| 方式 | 功能 |
|---|---|
| GET | 获取数据 |
| POST | 提交数据,创建数据 |
| PUT | 提交数据,更新数据 |
| DELETE | 删除数据 |
数据较多,返回所有数据是不现实的,那么可以让API提供参数,进行结果返回
5.状态码1.成功
| 状态码 | 解释 |
|---|---|
| 200 | ok 成功返回用户请求的数据 |
| 201 | CREATED - [POST/PUT/PATCH] 新建或修改数据成功 |
| 204 | NO CONTENT - [DELETE] 删除数据成功 |
2.失败
| 状态码 | 解释 |
|---|---|
| 400 | INVALID REQUEST - [POST/PUT/PATCH] 发出的请求错误,没有进行新建或修改 |
| 404 | NOT FOUND - [*] 发出的请求针对的是不存在的记录,服务器没有进行操作 |
就是我们平常用来存储和传输数据用的
4. 阅读接口文档| 方式 | 解释 |
|---|---|
| 接口描述 | 简单描述接口的逻辑和作用。例如说明这是一个发送消息的接口、查询天气的接口 |
| 接口地址 | 表示的是网络地址,即url,我们需要调用接口url,获取响应内容 |
| 请求方法 | 常见的请求方法为GET和POST,其他的方式见下图 |
| 请求参数 | 用来传递信息的变量 |
| 响应内容 | 接口返回的字段名称和规则 |
| 错误代码 | 对接口的错误用代码进行归类 |
| 实例 | 调用时响应内容 |
安装DRF框架
pip install djangorestframework
在setting中配置
2.APIViewINSTALLED_APPS = [
‘django.contrib.admin’,
‘django.contrib.auth’,
‘django.contrib.contenttypes’,
‘django.contrib.sessions’,
‘django.contrib.messages’,
‘django.contrib.staticfiles’,
'rest_framework ', 配置
‘myapp’,
]
| 要求 | 解释 |
|---|---|
| 视图封装 | DRF封装请求数据为request.data返回数据Response方法 |
| 序列化器 | DRF提供序列化器统一便捷对序列化和反序列化 |
| 认证 | 对用户登陆进行身份证明 |
| 权限 | 对权限进行认证,例如超级用户、普通用户、匿名用户 |
| 限流 | 对流量进行限制减轻接口的的压力 |
| 过滤 | 可以对列表数据进行字段过滤 |
| 排序 | 对指定的字段进行排序 |
| 分页 | 可以对数据集进行分页处理 |
| 异常处理 | DRF异常处理并且可以自定义异常处理 |
| 接口文档生成 | DRF自动生成接口文档 |
from rest_framework.views import APIView
from rest_framework.response import Response
# Create your views here.
class MyView(APIView):
def get(self,request):
print(request.query_params)
return Response({'mgs':'success'},status=200)
4 .序列化
class PeopleView(APIView):
def get(self,request):
people=People.object.all()
people_list=[]
for peo in people:
people_dict={
'name':peo.name,
'sex:peo.sex,
'money':peo.money,
'ranking':peo.ranking,
}
people_list=[people.dict]
return Response(people_list,status=200)



