• Django REST Framework概述


    什么是REST

    REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”。这里说的表征性,就是指资源,通常我们称为资源状态转移。

    什么是资源?

    网络上所有的文本、图片、视频等实体,都是资源。除了实体,还可以是抽象概念,比如某人的手机号、住址等。找到某个资源,需要URL,统一资源定位符。

    URL和URI

    URI是统一资源标志符。URL用来描述地址,URI用来对资源进行标识。URL是URI的一个子集,通过定位的方式实现URI

    RESTful规范

    面向资源

    每个URL代表一种资源,URL中尽量不要用动词,要用名词

    根据请求方式不同,进行不同的操作

    GET:     从服务器取出资源
    POST:   在服务器新建一个资源
    PUT:     在服务器更新资源(客户端提供改变后的完整资源)
    PATCH: 在服务器更新资源(客户端提供改变的属性)
    DELETE:从服务器删除资源

    在URL中体现版本

    https://www.cnblogs.com/v1/myclass

    在URL中体现是否是API

    https://www.cnblogs.com/api/vi/myclass

    尽量使用HTTPS

    https://www.cnblogs.com/api/vi/myclass

    响应返回规范

    {
        code: 1000, // 响应码
        msg: "ok",  // 描述信息
        data:{  // 数据
            id:1,
            name:'小强',
            depart_id:http://www.luffycity.com/api/v1/depart/8
        }
    }

    举例:

    例如动物园中有很多的动物,如何进行增删改查?

    • 查找一个老虎:https://www.zoo.com/api/v1/animal?class=tiger&id=1 GET
    • 查找所有老虎:https://www.zoo.com/api/v1/animal?class=tiger         GET
    • 增加一个老虎:https://www.zoo.com/api/vi/animal      POST
    • 删除一个老虎:https://www.zoo.com/api/vi/animal         DELETE
    • 修改一个老虎的某个属性:https://www.zoo.com/api/vi/animal PATCH
    • 修改一个老虎的所有属性:https://www.zoo.com/api/vi/animal PUT

    我们可以看到URL中全部都是名词,对资源的操作(动作)体现在请求方式上,体现了面向资源的思想。

    Django REST Framework

    是基于Django的RESTful实现

    下载

    pip3 install djangorestframework

    settings.py

    INSTALLED_APPS = [
        ...
        'rest_framework',
    ]

    urls.py

    from DemoApp.views import BookView
    urlpatterns = [
        path('list', BookView.as_view()),
    ]

    views.py

    from rest_framework.views import APIView
    from rest_framework.response import Response
     
    class BookView(APIView):
        def get(self, request, *args, **kwargs):
            return Response('GET请求,响应内容')
       
        def post(self, request, *args, **kwargs):
            return Response('POST请求,响应内容')
       
        def put(self, request, *args, **kwargs):
            return Response('PUT请求,响应内容')

    DRF主要功能和组件

  • 相关阅读:
    从远程库克隆(转载)
    添加远程库(转载)
    远程仓库(转载)
    maven+hudson构建集成测试平台
    maven_基本配置
    crawler_基础之_httpclient 访问网络资源
    crawler_jsoup HTML解析器_使用选择器语法来查找元素
    oracle_job 清空冗余数据 ,每一分钟执行一次
    oracle_根据ID(字符型)建立分区表
    crawler_基础之_java.net.HttpURLConnection 访问网络资源
  • 原文地址:https://www.cnblogs.com/V587Chinese/p/11562050.html
Copyright © 2020-2023  润新知