1.drf框架全称 djangorestframework

1.如何安装drf框架:

pip3 install djangorestframework

#drf框架其实就是一个app称之为drf
#django 使用的是MTV模式, 可以写fbv 或cbv
#fbv是使用函数写的, 用的就是django原生的
#cbv是使用类来写的, 主要使用drf 以后用到drf框架就是写cbv模式

2. 如何使用drf框架

# 在django项目中设置settings文件内注册rest_framework

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'app01.apps.App01Config',
]

3. 在url层中使用cbv模式 urls配置文件的路由编写规范如下:

from django.conf.urls import url
from django.contrib import admin
from app01 import views
urlpatterns = [
url(r'^admin/', admin.site.urls),
# views.Books.as_view()函数执行结果也是个函数内存地址
# url(r'^books/', views.book),
url(r'^books/', views.Books.as_view()),
]
#使用cbv模式后面需要加上.as_view()

4. 在views层 编写视图函数模式如下需要继承APIView:

#基于drf写的cbv
from rest_framework.views import APIView
class Books(APIView): def get(self,request):
#一旦继承APIView,request是经过处理的request,新的request
# request.POST
print(request.GET)
print(request.POST)
print(request.method)
print(request.FILES)
print(request.query_params)
# print(request._request.GET)
#把原来request取出来
#django.core.handlers.wsgi.WSGIRequest 是原来request对象得类 #这个data是post,put的内容,都在它里面,字典形式
print(request.data) print(type(request._request))
ll=[{'id':1,'title':'银瓶梅'},{'id':1,'title':'铜瓶梅'}]
return JsonResponse(ll,safe=False,json_dumps_params={'ensure_ascii':False})
def post(self,request):
return HttpResponse('ok')

#总结: 一句话使用drf框架就使用cbv模式, 一定要遵守以上的规则,不然就无法正常运行

2.什么是rest_ful规范

1 resufl规范   非常重要
-它是一个规范,面向资源架构
-10条规范:
-1 API与用户的通信协议,总是使用HTTPs协议
-2域名
https://api.example.com :尽量将API部署在专用域名(会存在跨域问题)
https://example.org/api/:API很简单(我推荐)
-3 版本
-https://api.example.com/v1/
-把版本号放在请求头中
127.0.0.1/book/1
-4 路径,视网络上任何东西都是资源,均使用名词表示(可复数) 必须说出来
-127.0.0.1/get_all_book/ 以前你这么写
-127.0.0.1/books/
-5 method,通过请求方式来表示进行的操作
127.0.0.1/books/ get请求:表示获取所有图书
127.0.0.1/books/1 get请求:表示获取id为1的图书
127.0.0.1/books/ post请求:表示新增一本书
127.0.0.1/books/ delete请求:表示删除一本书
127.0.0.1/books/ put/patch请求:表示修改一本书
-6 过滤,通过在url上传参的形式传递搜索条件
-7 状态码
1 开头:服务器正在处理
2 开头:服务器处理成功
3 开头:重定向
4 开头:客户端错误
5 开头:服务器错误
-注意:在返回的数据中携带状态码
-8 错误处理,应返回错误信息,error当做key
-9 返回结果针对不同操作,返回数据格式要求
-10 返回结果中提供链接 总结:必须说出来的就两条:路径都用名词表示,请求方式不同,表示不同的操作

DRF框架简介(第一天)的更多相关文章

  1. Spring 系列: Spring 框架简介 -7个部分

    Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...

  2. Apache—DBUtils框架简介

    转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner ...

  3. Web自动化框架LazyUI使用手册(1)--框架简介

    作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...

  4. python运维开发(二十二)---JSONP、瀑布流、组合搜索、多级评论、tornado框架简介

    内容目录: JSONP应用 瀑布流布局 组合搜索 多级评论 tornado框架简介 JSONP应用 由于浏览器存在同源策略机制,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性. ...

  5. Spring 系列: Spring 框架简介(转载)

    Spring 系列: Spring 框架简介 http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring AOP 和 IOC 容器入门 在 ...

  6. JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作

    1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...

  7. APP自动化框架LazyAndroid使用手册(1)--框架简介

    作者:cryanimal  QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试 ...

  8. 爬虫基础(五)-----scrapy框架简介

    ---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...

  9. 一、restful规范 二、CBV(View)源代码执行流程 三、drf框架安装和简单使用

    一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example. ...

随机推荐

  1. noj装载问题

    描述 有两艘船,载重量分别是c1. c2,n个集装箱,重量是wi (i=1…n),且所有集装箱的总重量不超过c1+c2.确定是否有可能将所有集装箱全部装入两艘船.   输入 多个测例,每个测例的输入占 ...

  2. 2017-9-3模拟赛T2 取数(win)

    题目 题解 做法1: 直接暴力枚举每个数是否被选出,计算平均数-中位数,并与当前答案进行比较.复杂度O(2^n),能过60%的数据. 做法2: 将每个数排序后枚举中位数. 首先,取奇数个数一定更优.容 ...

  3. 7--Python入门--条件和循环

    5.1 条件语句 条件语句基本框架如下:if 判断语句1: 执行语句块1elif 判断语句2: 执行语句块2else: 执行语句块3 a = 10 if a%2 == 0 : #这里使用了取余函数% ...

  4. canvas画圆类似于锯齿指针 angular5

    拿到图的时候大致是这样的,里面的圆是有动态效果的,考虑到gif图耗资源,于是想要用canvas画出来: 仔细看图不难发现,这个锯齿圆类似于表盘,计算好弧度,不难实现: 因为项目现在用的框架是angul ...

  5. Gym - 101201E:Enclosure (点到凸包的切线)

    题意:给点N棵树,前K棵是已经拥有的,现在可以再拥有一棵树,问形成的最大凸包面积. 思路:先求K棵树的凸包C,然后对于后面的N-K棵树,我们先判断是否在凸包内,如果不在,我们要求两个切线. 这里分类讨 ...

  6. 11.python描述符---类的装饰器---@property

    描述符1.描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()这三个内置方法中的一个,描述符也被称为描述符协议(1):__ ...

  7. (33)关于django中路由自带的admin + 建表关系的讲解

    admin是django自带的后台管理,在初始的时候就默认配置好了 当输入ip地址的时候后面跟admin,就会登陆管理员的后台,这个是django自带的,可以快速管理数据表(增删改查) PS:ip地址 ...

  8. H3C交换机配置vlan

    一,内存二,硬盘(分区,数据量大小)三,电源线,网络线四,raid(raid0,raid1,raid5)五,装系统(系统版本,分区)六,配置网络 1.创建用户 system-view #进入配置loc ...

  9. 使用deb 打包开发的postgres extension 另外一种方法

    已经写过一个deb 包打包的方法,我们同时也可以使用dpkg-deb 命令 安装依赖工具包 推荐安装全点的 sudo apt-get install build-essential autoconf ...

  10. idc市场

    机房 idc服务商 ============================== 电信1.古城热线-西部数据中心于2001年正式投入运营,有经济技术开发区和高新技术产业开发区两个核心机房高新路电信广场 ...