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/

Python-Django-Djangorestframwork的更多相关文章

  1. 基于Python+Django的Kubernetes集群管理平台

    ➠更多技术干货请戳:听云博客 时至今日,接触kubernetes也有一段时间了,而我们的大部分业务也已经稳定地运行在不同规模的kubernetes集群上,不得不说,无论是从应用部署.迭代,还是从资源调 ...

  2. python——django使用mysql数据库(二)

    上一篇中,我们已经讲述了如何初始化一个django数据库,这一章就来讲讲在实际的项目中如何使用我们初始化的数据库呢? 如还未进行初始化数据库操作,请参考python——django使用mysql数据库 ...

  3. python——django使用mysql数据库(一)

    之前已经写过如何创建一个django项目,现在我们已经有了一个小骷髅,要想这个web工程变成一个有血有肉的人,我们还需要做很多操作.现在就先来介绍如何在django中使用mysql数据库. 前提:已经 ...

  4. 如何查看PYTHON Django的保存路径

    如何查看PYTHON Django的保存路径 $ python -c " import sys sys.path = sys.path[1:] import django print(dja ...

  5. python Django教程 之 模型(数据库)、自定义Field、数据表更改、QuerySet API

    python  Django教程  之 模型(数据库).自定义Field.数据表更改.QuerySet API 一.Django 模型(数据库) Django 模型是与数据库相关的,与数据库相关的代码 ...

  6. python Django教程 之模板渲染、循环、条件判断、常用的标签、过滤器

    python3.5 manage.py runserver python Django教程 之模板渲染.循环.条件判断.常用的标签.过滤器 一.Django模板渲染模板 1. 创建一个 zqxt_tm ...

  7. python Django教程 之 安装、基本命令、视图与网站

    python  Django教程  之 安装.基本命令.视图与网站 一.简介 Django 中提供了开发网站经常用到的模块,常见的代码都为你写好了,通过减少重复的代码,Django 使你能够专注于 w ...

  8. python django 多级业务树形结构规划及页面渲染

    概述: 在项目中,父级到子级结构并不少见,如果仅仅的两层树形结构,我们可以使用数据库的外键设计轻松做到,子级业务表设计一字段外键到父级业务表,这样子到父.父到子的查询都非常简单. 但是往往父子结构会有 ...

  9. Python.Django视频教程(全13集)

    Python.Django视频教程(全13集)教程目录: 下载地址:http://www.fu83.cn/thread-205-1-1.html

  10. Python+Django+Eclipse 在Windows下快速开发自己的网站

    一.配置开发环境 我的开发环境是:Python3.3.2 + Django1.5.2 + Eclipse 1.安装Python 下载地址:http://www.python.org/getit/ 安装 ...

随机推荐

  1. Git初始化-添加提交以及查看状态

    本地库初始化 使用 git bash 打开 git 命令行窗口.这个命令行窗口兼容 Linux 命令. 命令:mkdir 当前文件下新建文件夹. 命令:git init 初始化空的本地库,.git文件 ...

  2. JS 设计模式三 -- 策略模式

    策略模式 概念 定义一系列算法,把它们一个个封装起来. 将算法的使用与算法的实现分离开来 实现 // 加权映射关系 var levelMap = { S: 10, A: 8, B: 6, C: 4 } ...

  3. Python 执行 shellcode

    import urllib2 import ctypes import base64 # 从我们的web服务器上下载shellcode url = "http://rinige.com/sh ...

  4. C#中使用JavaScriptSerializer类实现序列化与反序列化

    1.添加引用 JavaScriptSerializer类的使用需要引用System.Web.Extensions.dll文件,根据路径:C:\Program Files (x86)\Reference ...

  5. 修改chrome的安装目录

    进入默认安装目录,然后把application文件夹复制出来,把文件夹改名为“Chrome浏览器”之类的.然后进入这个文件夹,新建一个文件夹,名字叫做est_profile 在chrome.exe目录 ...

  6. Django ORM 操作2 增删改

    增删改 增加 表对象直接增加方式 Frank_obj = models.Student(name ="海东",course="python",birth=&qu ...

  7. 「【算法进阶0x30】数学知识A」作业简洁总结

    t1-Prime Distance 素数距离 大范围筛素数. t2-阶乘分解 欧拉筛素数后,按照蓝皮上的式子筛出素数. 复杂度:O(nlogn) t3-反素数ant 搜索 t4-余数之和 整除分块+容 ...

  8. Zookeeper分布式集群原理与功能

    Zookeeper功能简介 ZooKeeper 是一个开源的分布式协调服务,由雅虎创建,是 Google Chubby 的开源实现. 分布式应用程序可以基于 ZooKeeper 实现诸如数据发布/订阅 ...

  9. 洛谷 P1411 树

    最近在做些树形DP练练手 原题链接 大意就是给你一棵树,你可以断开任意数量的边,使得剩下的联通块大小乘积最大. 样例 8 1 2 1 3 2 4 2 5 3 6 3 7 6 8 输出 18 我首先想的 ...

  10. Codeforces Gym 101252D&&floyd判圈算法学习笔记

    一句话题意:x0=1,xi+1=(Axi+xi%B)%C,如果x序列中存在最早的两个相同的元素,输出第二次出现的位置,若在2e7内无解则输出-1. 题解:都不到100天就AFO了才来学这floyd判圈 ...