第九单元 DRF框架及APIView

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

参数类型必须说明
appkeyString应用的唯一标识key
appsecretString应用的密钥

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值