1.前后端分离和不分离的概念
1.前后端分离:
1.1 前端:浏览器
HTML、CSS、Bootstrap、JS、JQuery、Vue、NodeJS、webpack
炫酷、流畅、兼容
后端:服务端
Django、flask、tornado
三高:高并发、高可用、高性能
2.restful风格:
请求类型 要和 操作对应:
-
GET:获取数据
-
POST:提交数据,创建数据
-
PUT:提交数据,更新数据
-
DELETE:删除数据
使用合理的状态码:
200 OK - [GET] # 服务器成功返回用户请求的数据
201 CREATED - [POST/PUT/PATCH] # 用户新建或修改数据成功。
204 NO CONTENT - [DELETE] # 用户删除数据成功。
400 INVALID REQUEST - [POST/PUT/PATCH] # 用户发出的请求有错误,服务器没有进行新建或修改数据的操作
401 Unauthorized - [] # 表示用户没有权限(令牌、用户名、密码错误)。
403 Forbidden - [] # 表示用户得到授权(与 401 错误相对),但是访问是被禁止的。
404 NOT FOUND - [*] # 用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
406 Not Acceptable - [GET] # 用户请求的格式不可得(比如用户请求 JSON 格式,但是只有 XML 格式)。
410 Gone -[GET] # 用户请求的资源被永久删除,且不会再得到的。
422 Unprocesable entity - [POST/PUT/PATCH] # 当创建一个对象时,发生一个验证错误
500 INTERNAL SERVER ERROR - [*] # 服务器发生错误,用户将无法判断发出的请求是否成功
还有三个不常用的HTTP动词
PATCH:在服务器更新(更新)资源
HEAD:获取资源的元数据。
OPTIONS:获取信息,关于资源的哪些属性是客户端可以改变的
3.接口PAI、接口文档
1.1 API :应用的程序编程接口
接口文档:接口描述、接口地址、请求方法、请求参数、响应内容、错误代码
接口描述:描述接口逻辑和作用
接口地址:表示的网络地址
请求方法:请求方法为GET和POST
请求参数:传递信息的变量、URL传参、Headers 请求头、Body 请求内容
响应内容:接口返回的字段名称和规则
错误代码:对接口的错误用代码进行归类,以便能快速找到错误原因,解决问题
1.2获取access_token
参数 | 类型 | 必须 | 说明 |
---|---|---|---|
appkey | String | 是 | 应用的唯一标识key |
appsecret | String | 是 | 应用的密钥 |
4.APIView 和 Response:DRF框架提供给我们的视图类 和 响应
drf工程搭建
安装DRF框架
pip install djangorestframework -i
中国环境变量
https://pypi.tuna.tsinghua.edu.cn/simple
配置settings
INSTALLED_APPS = [
...
'rest_framework',
]
序列化器,类视图,也是DRF提供的主要功能,也是我们学习的重心,也是 WEB 主要的两件事
1.1APIView处理Request
表单类型数据、JSON类型数据
from rest_framework.views import APIView
class MyView(APIView):
def get(self,request):
print(request.query_params)
return Response({"msg":"success"},status=200)
def post(self,request):
print(request.data)
return Response({"msg":"success"},status=201)
query_params
from rest_framework.views import APIView
class PeopelView(APIView):
def get(self,request):
people=People.objects.all()
people_list=[]
for peo in people:
people_dict={
"name":peo.name,
"sex":peo.sex,
"money":peo.money,
"ranking":peo.ranking
}
people_list.append(people_dict)
return Response(people_list,status=200)
6.什么是序列化和反序列化
1.1什么是JSON
JSON是一种个编程语言中的数据格式,在不同的编程语言进行数据传递和交互,也就是JSON数据在不同语言跨越的鸿沟
通过JSON就可以以进行数据通信常见的接口数据都是JSON格式
1.2 什么是序列化
序列化:就是把模型层的数据返回JSON数据
反序列化:反过来就是把JSON数据
1.3.DRF的序列化器
# 创建自己的序列化器---写模型类一样
from django.db import models
# Create your models here.
# 定义序列化器的名字
class People(models.Model):
name=models.CharField(max_length=20,verbose_name="姓名")
sex=models.CharField(max_length=5,verbose_name="性别")
money=models.IntegerField(verbose_name="身价")
ranking=models.IntegerField(verbose_name="排名")
class Meta:
db_table="peopel"
verbose_name="名人表"
verbose_name_plural=verbose_name
def __str__(self):
return self.name