DRF框架简介(第一天)
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框架简介(第一天)的更多相关文章
- Spring 系列: Spring 框架简介 -7个部分
Spring 系列: Spring 框架简介 Spring AOP 和 IOC 容器入门 在这由三部分组成的介绍 Spring 框架的系列文章的第一期中,将开始学习如何用 Spring 技术构建轻量级 ...
- Apache—DBUtils框架简介
转载自:http://blog.csdn.net/fengdongkun/article/details/8236216 Apache—DBUtils框架简介.DbUtils类.QueryRunner ...
- Web自动化框架LazyUI使用手册(1)--框架简介
作者:cryanimal QQ:164166060 web端自动化简介 web端自动化,即通过自动化的方式,对Web页面施行一系列的仿鼠标键盘操作,以达到对Web页面的功能进行自动化测试的目的. 其一 ...
- python运维开发(二十二)---JSONP、瀑布流、组合搜索、多级评论、tornado框架简介
内容目录: JSONP应用 瀑布流布局 组合搜索 多级评论 tornado框架简介 JSONP应用 由于浏览器存在同源策略机制,同源策略阻止从一个源加载的文档或脚本获取或设置另一个源加载的文档的属性. ...
- Spring 系列: Spring 框架简介(转载)
Spring 系列: Spring 框架简介 http://www.ibm.com/developerworks/cn/java/wa-spring1/ Spring AOP 和 IOC 容器入门 在 ...
- JAVAEE——BOS物流项目10:权限概述、常见的权限控制方式、apache shiro框架简介、基于shiro框架进行认证操作
1 学习计划 1.演示权限demo 2.权限概述 n 认证 n 授权 3.常见的权限控制方式 n url拦截权限控制 n 方法注解权限控制 4.创建权限数据模型 n 权限表 n 角色表 n 用户表 n ...
- APP自动化框架LazyAndroid使用手册(1)--框架简介
作者:cryanimal QQ:164166060 APP自动化简介 APP自动化,即通过自动化的方式,对APP施行一系列的仿按键输入.触摸屏输入.手势输入等操作,以达到对APP的功能进行自动化测试 ...
- 爬虫基础(五)-----scrapy框架简介
---------------------------------------------------摆脱穷人思维 <五> :拓展自己的视野,适当做一些眼前''无用''的事情,防止进入只关 ...
- 一、restful规范 二、CBV(View)源代码执行流程 三、drf框架安装和简单使用
一.restful规范 ''' 它是一个规范,面向资源架构 十条规范 1.API与用户的通讯协议,总是使用HTTPs协议,确保了网络传输的安全性 2.域名 --https://api.example. ...
随机推荐
- 马凯军201771010116《面向对象程序设计(java)》第二周学习总结
第一部分:理论知识学习部分 (1)基本知识:简单应用程序的结构:Java环境里的注释方式: (2)数据类型(4种整型.2种浮点型.1种字符型‘char’.真值型‘Boolean’. (3)变量,每个变 ...
- wpf-x命名空间-Markup Extension(标记扩展)
1.x:type 用于前端类型声明 与C# 代码 Type类似 2.x:Null 代表Null 某些时候需要显示的为一些值设置为空 前端为 x:Null C# 中 为 Null 3.x:ar ...
- css 文本超出范围显示省略号
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 剑指Offer 40. 数组中只出现一次的数字 (数组)
题目描述 一个整型数组里除了两个数字之外,其他的数字都出现了偶数次.请写程序找出这两个只出现一次的数字. 题目地址 https://www.nowcoder.com/practice/e02fdb54 ...
- [转]Spark学习之路 (三)Spark之RDD
Spark学习之路 (三)Spark之RDD https://www.cnblogs.com/qingyunzong/p/8899715.html 目录 一.RDD的概述 1.1 什么是RDD? ...
- python 实现快速排序和插入排序
def quick_sort(data): if len(data)<2 or (len(data)==2 and data[0]<=data[1]): #[2,3]此情况会死循环 所以加 ...
- android用户信息保存
一.SharedPreferences key-value方式保存简单类型的数据.文件位置data/data/相应的包名/xml文件 保存 SharedPreferences preference = ...
- tomcat8.5配置redis实现session共享(tomcat-redis-session-manager-master)
1.将下面几个jar包依赖放到tomcat的lib目录下: 2.修改tomcat/conf下context.xml文件,在<Context>节点添加如下代码: <Valve clas ...
- 【python接口自动化框架-unittest】如何传参数到下一个case
1.前提 平时我们用unittest的时候,都知道每个test_ 都是相互独立的,但是很多现实情况是,我们下一个接口参数,可能会用到上一个接口返回的json字段,那么,我们怎么去实现呢 2.实例 1. ...
- PythonStudy——Python 中Switch-Case 结构的实现
学习Python过程中,发现Python没有Switch-case,过去写C习惯用Switch/Case语句,官方文档说通过if-elif实现.所以不妨自己来实现Switch-Case功能. 方法一 ...