1.API 接口  是什么,干什么用的?

            API简单的来说就是一个url
       - http://www.oldboyedu.com/get_user/
- http://www.oldboyedu.com/get_users/
两个用途:
- 为别人提供服务
- 前后端分离
              为什么要做前后端分离:
                  解耦
                  把前端分离出来,可以用前端框架,开发起来非常快
                  一个后端程序可以给多个客户端服务       

2. restful是什么

            - 表征状态转移
- 面向资源编程,对互联网上的任意东西都视为资源。
- http://www.oldboyedu.com/get_user/
- http://www.oldboyedu.com/get_img/1.png

3.普通的api与 restful api 的区别

普通API:  接口太多
姑娘列表:
http://www.oldboyedu.com/get_girls/
http://www.oldboyedu.com/add_girl/
http://www.oldboyedu.com/del_girl/1/
http://www.oldboyedu.com/update_girl/1/ restful api:
姑娘列表:
http://www.oldboyedu.com/girls/
GET: 获取
POST: 添加
PUT: 更新
DELETE:删除

4. restful api 规范:  对请求有一个约定 ,遵循更好,不遵循也能用

    - URL
api.sssss.com 有跨域的问题,因为不同源
http://www.sssss.com/api
- url名词
    视网络上任何东西都是资源,均使用名词表示(可复数)
    •   https://api.example.com/v1/zoos
    •   https://api.example.com/v1/animals
    •   https://api.example.com/v1/employees
- 版本 : 版本更新  http://www.sssss.com/api/v1/
- 提交方式
通过请求方式来判断你要做的操作
method :
GET :从服务器取出资源(一项或多项)
POST :在服务器新建一个资源
PUT :在服务器更新资源(客户端提供改变后的完整资源)
#PATCH :在服务器更新资源(客户端提供改变的属性)
DELETE :从服务器删除资源
- status : 不同的状态码代表着不同的意思
部分成功可以用 code来操作: 1001 成功,1002部分成功,1003 全部失败
- Hypermedia link :看情况而定。可以直接返回json数据,也可以返回 一个url ,让前端再次放送请求查看具体的信息
- 错误详细 : 要返回给前端
OK - [GET]:服务器成功返回用户请求的数据,该操作是幂等的(Idempotent)。
CREATED - [POST/PUT/PATCH]:用户新建或修改数据成功。
Accepted - [*]:表示一个请求已经进入后台排队(异步任务)
NO CONTENT - [DELETE]:用户删除数据成功。
INVALID REQUEST - [POST/PUT/PATCH]:用户发出的请求有错误,服务器没有进行新建或修改数据的操作,该操作是幂等的。
Unauthorized - [*]:表示用户没有权限(令牌、用户名、密码错误)。
Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
NOT FOUND - [*]:用户发出的请求针对的是不存在的记录,服务器没有进行操作,该操作是幂等的。
Not Acceptable - [GET]:用户请求的格式不可得(比如用户请求JSON格式,但是只有XML格式)。
Gone -[GET]:用户请求的资源被永久删除,且不会再得到的。
Unprocesable entity - [POST/PUT/PATCH] 当创建一个对象时,发生一个验证错误。
INTERNAL SERVER ERROR - [*]:服务器发生错误,用户将无法判断发出的请求是否成功。 更多看这里:http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

常用状态码

5. restful api 的两种方式

    方式一:
http://www.oldboyedu.com/girls/
GET: 获取
POST: 添加
PUT: 更新
DELETE:删除 方式二:
http://www.oldboyedu.com/girls/
- 姑娘列表
http://www.oldboyedu.com/girl/1/
- 单独一个

6.基于Django做API
    - FBV

---urls
from django.conf.urls import url
from app01 import views
urlpatterns = [
url(r'^users/', views.users),
url(r'^user/(\d+)', views.user),
] ---views
from django.shortcuts import render,HttpResponse
import json def users(request):
response = {'code':1000,'data':None}
response['data'] = [
{'name':'盛松','age':19},
{'name':'鲁宁','age':20},
{'name':'解析博','age':5},
]
return HttpResponse(json.dumps(response),status=200) def user(request,pk):
if request.method == "GET":
return HttpResponse(json.dumps({'name':'盛松','age':19}))
elif request.method == "POST":
return HttpResponse(json.dumps({'code':1111}))
elif request.method == "PUT":
pass
elif request.method == "DELETE":
pass

- CBV
        至于为什么不直接用原始的django CBV做api,就是因为它的dispatch方法功能太少了,许多功能需要自己开发。

---urls
urlpatterns = [
url(r'^users', Users.as_view()),
] ---views
from django.views import View
from django.http import JsonResponse class Users(View):
def get(self, request, *args, **kwargs):
result = {
'status': True,
'data': 'response data'
}
return JsonResponse(result, status=200) def post(self, request, *args, **kwargs):
result = {
'status': True,
'data': 'response data'
}
return JsonResponse(result, status=200)

python-django rest framework框架的更多相关文章

  1. web前端Vue+Django rest framework 框架 生鲜电商项目实战✍✍✍

    web前端Vue+Django rest framework 框架 生鲜电商项目实战  整个课程都看完了,这个课程的分享可以往下看,下面有链接,之前做java开发也做了一些年头,也分享下自己看这个视频 ...

  2. Django REST framework框架介绍和基本使用

    Django REST framework介绍 Django REST framework是基于Django实现的一个RESTful风格API框架,能够帮助我们快速开发RESTful风格的API. 官 ...

  3. Django Rest framework 框架之认证使用和源码执行流程

    用这个框架需要先安装: pip3 install djangorestframework 如果写了一个CBV的东西,继承了View. # 继承Django里面View class APIView(Vi ...

  4. Django Rest Framework框架 ---- url控制器

    Django Rest Framework框架 ---- url控制器

  5. web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 ☝☝☝

    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程    web前端Vue+Django rest framework 框架 生鲜电商项目实战视频教程 学习 ...

  6. Django Rest framework 框架

    一.开发模式: 1. 普通开发方式(前后端放在一起写) 2. 前后端分离(前后台通过ajaxo交互) 后端(django rest framework写的) <----ajaxo---> ...

  7. python django中restful框架的使用

    在使用django进行前后台分离开发时通常会搭配django-rest-framework框架创建RESTful风格的接口API.框架介绍及版本要求可参考官方地址:https://www.django ...

  8. Python Django rest framework

    本节内容 Django rest framework 安装 Django rest framwwork 环境配置 简单举例说明 Django中使用 rest framework 1.1 安装 Djan ...

  9. [python]django rest framework写POST和GET接口

    版本声明 python3.6.5 Django-2.0.6 djangorestframework-3.8.2 mysqlclient-1.3.12 1.写一个登录接口,不多说,直接上代码 login ...

  10. Django Rest Framework框架源码流程

    在详细说django-rest-framework源码流程之前,先要知道什么是RESTFUL.REST API . RESTFUL是所有Web应用都应该遵守的架构设计指导原则. REST是Repres ...

随机推荐

  1. P3159 [CQOI2012]交换棋子

    思路 相当神奇的费用流拆点模型 最开始我想到把交换黑色棋子看成一个流流动的过程,流从一个节点流向另一个节点就是交换两个节点,然后把一个位置拆成两个点限制流量,然后就有了这样的建图方法 S向所有初始是黑 ...

  2. P2257 YY的GCD(莫比乌斯反演)

    第一次做莫比乌斯反演,推式子真是快乐的很啊(棒读) 前置 若函数\(F(n)\)和\(f(d)\)存在以下关系 \[ F(n)=\sum_{n|d}f(d) \] 则可以推出 \[ f(n)=\sum ...

  3. 题解——loj6278 数列分块入门2 (分块)

    查询小于k的值 注意lower_bound一定要减去查找的起始位置得到正确的位置 调了快两天 淦 #include <cstdio> #include <algorithm> ...

  4. localhost 和 127.0.0.1 有什么区别?

    另外,主要是好友为什么两个一个有 favicon 一个没有? 127.0.0.1和localhost_180104074532.png

  5. jQuery 知识点总结

    jQuery 是一个“写的更少,但做的更多”的轻量级JavaScript 库.对于网页开发者来说,学会jQuery是必要的.因为它让你了解业界最通用的技术,为将来学习更高级的库打下基础,并且确实可以很 ...

  6. Go 定长的数组

    1.Go 语言数组的简介 几乎所有的计算机语言都有数组,应用非常的广泛.同样,在 Go 语言中也有数组并且在数组的基础上还衍生出了切片(slice). 数组是一系列同一类型数据的集合,数组中包含的每个 ...

  7. Spring-Mybatis依赖

    <!-- https://mvnrepository.com/artifact/org.mybatis/mybatis --><dependency> <groupId& ...

  8. 33 Python 详解命令解析 - argparse--更加详细--转载

    https://blog.csdn.net/lis_12/article/details/54618868 Python 详解命令行解析 - argparse Python 详解命令行解析 - arg ...

  9. VR外包团队:魔幻的三星GearVR

    如果问大大菌,移动端什么产品最好,大大菌一定会和你说,是gearvr,对于已经购买了三星2015旗舰手机.又对VR技术感到好奇的用户,建议花99美元买一台Gear VR,绝对会让你物有所值. 在短短的 ...

  10. [Python]IO密集型任务 VS 计算密集型任务

    所谓IO密集型任务,是指磁盘IO.网络IO占主要的任务,计算量很小.比如请求网页.读写文件等.当然我们在Python中可以利用sleep达到IO密集型任务的目的. 所谓计算密集型任务,是指CPU计算占 ...