栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

第九单元 DRF框架及APIView

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

第九单元 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

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/853422.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号