zoukankan      html  css  js  c++  java
  • Python-Django-Djangorestframwork

    1 CBV源码分析(cbv和fbv)

    1 在views中写一个类,继承View,里面写get方法,post方法
    2 在路由中配置: url(r'^test/', views.Test.as_view()),实际上第二个参数位置,放的还是一个函数内存地址
    3 当请求来了,就会执行第二个参数(request,参数),本质上执行view()
    4 view内部调用了dispatch()方法
    5 dispatch分发方法,根据请求方式不同,执行的方法不同

    2 resful规范(10个规范)

    -面向资源架构,面向资源编程
    -10个规范
    -与后台做交互,通常使用https
    -域名:
      -https://api.baidu.com(存在跨域问题)
      -https://www.baidu.com/api/
    -版本
      -https://www.baidu.com/api/v1
      -https://www.baidu.com/api/v2
    -路径,视网络上任何东西都是资源,均使用名词表示(可复数)
      -https://api.example.com/v1/books
      不是:https://api.example.com/v1/delete_one_book
    -method来表示增删查改
      -https://api.example.com/v1/books get请求,获取所有书
      -https://api.example.com/v1/books post请求,新增一本书
      -https://api.example.com/v1/book/1 delete请求,删除一本书
      -https://api.example.com/v1/book/1 delete请求,获取id为1的这本书
      -https://api.example.com/v1/book/1 put/patch请求,修改id为1的这本书

    -过滤,通过在url上传参的形式传递搜索条件
      -https://api.example.com/v1/books?limit=10:只拿前10本
      -https://api.example.com/v1/books?price=10:只拿价格为10的书
    -状态码
      -{status:100,}
    -错误处理,应返回错误信息,error当做key
      {
      status:101,
      errors:'您没有权限操作这个事'
      }
    -返回结果,针对不同操作,服务器向用户返回的结果应该符合以下规范
      GET /collection:返回资源对象的列表(数组)
      GET /collection/resource:返回单个资源对象
      POST /collection:返回新生成的资源对象
      PUT /collection/resource:返回完整的资源对象
      PATCH /collection/resource:返回完整的资源对象
      DELETE /collection/resource:返回一个空文档
    -返回结果中提供链接(获取一本书)
      {
      id:1
      name:lxx
      price:12
      publish:www.xx.com/api/v1/publish/1
      }

    3 django中写resful的接口

    -postman的使用
    -请求地址带反斜杠出现的问题(中间件)
      -如果请求地址是/user,路由中配置成'/user/',匹配不上,中间件会自动在后面加 / 再去匹配,能匹配成功,重定向到/user/,加了 / 还匹配不上,就报错
      -django.middleware.common.CommonMiddleware

    4 drf写resful的接口

    5 APIVIew源码分析

    对象没有,找父类的dispatch

    6 Request

     码分析

    7 drf之序列化

    8 在线格式化json -https://www.json.cn/

  • 相关阅读:
    关于VS中更改栈和堆空间的大小
    BS模式的模型结构详解
    友情链接
    [ThinkPHP] 比较标签 neq&nheq 与 PHP 中的 != 与 !== 出现的问题
    [个人思考] 裸泳的问题
    [label][Chrome-Extension] How to start Chrome Extension's development
    [label][OS] 制作 U 盘安装 Windows 7
    [label][Google-Developers] Your First Multi Screen Site
    Min Stack
    Implement Stack using Queues
  • 原文地址:https://www.cnblogs.com/du-jun/p/10402894.html
Copyright © 2011-2022 走看看