zoukankan      html  css  js  c++  java
  • 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主要功能和组件

  • 相关阅读:
    PHP如何学习?
    PHP compact() 函数
    Laravel中resource方法
    npm run watch-poll 监控css、js 文件更新
    MYSQL 的optimize怎么用
    出现“Windows资源管理器已停止工作”错误
    移动硬盘文件或目录损坏且无法读取怎么解决
    Linux下iptables 禁止端口和开放端口
    Linux VSFTP服务器详细配置
    分享一个基于ligerui的系统应用案例ligerRM V2(权限管理系统)(提供下载)
  • 原文地址:https://www.cnblogs.com/V587Chinese/p/11562050.html
Copyright © 2011-2022 走看看