前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >django-rest_framework api框架学习day1

django-rest_framework api框架学习day1

作者头像
kirin
发布于 2020-05-09 07:54:28
发布于 2020-05-09 07:54:28
1.3K0
举报
文章被收录于专栏:Kirin博客Kirin博客

今天开始了django-rest-framework的学习 *** 其实api写起来的话要比前后端一起写要简单很多,因为你不需要关心前端怎么写,主要心思放在后端上面即可,前端的话随便找个模板,然后用vue语法嵌套上去就好了,一样可以做到很好看,实现了前后端的分离,非常的nice,开始学习之路了!加油奥利给 *** 首先需要安装rest-framework *** pip install framework *** 接着在setting-installed-apps中注册 *** INSTALLED_APPS = [ ‘django.contrib.admin’, ‘django.contrib.auth’, ‘django.contrib.contenttypes’, ‘django.contrib.sessions’, ‘django.contrib.messages’, ‘django.contrib.staticfiles’, ‘testAPI.apps.TestapiConfig’, ‘rest_framework’, ‘ajax’, ] *** 注册完成之后路由上的写法也有些不同, URL中 *** from django.urls import path from . import views from .views import Order app_name=’testAPI’ urlpatterns=[ path(”,Order.as_view()),

] *** 引入,然后以前的视图函数变成了类Order.as_view() *** 接着就是视图中的各种请求了,例如post,get,delete,put,等等等等。。。 *** 最主要的两个包 **** 用于api类的继承 from django.views import View 用于json格式数据的输出, from django.http import JsonResponse **** 下面来看具体的写法 *** class Order(View): dispatch这个方法是所有的请求进来就先交个他处理,可以自己定义,不过不建议自己定义,还是遵从规则好点,因为各种类型的请求都是经过他的处理然后才返回数据的 def dispatch(self, request, *args, **kwargs): return HttpResponse(‘我是被执行的’) @csrf_exempt def get(self,request,*args,**kwargs): set={ ‘code’:100, ‘meg’:’获取成功’ } return JsonResponse(set)

def post(self,request,*args,**kwargs): set={ ‘code’:100, ‘meg’:’增加成功’ } return JsonResponse(set)

def put(self,request,*args,**kwargs): set={ ‘code’:100, ‘meg’:’修改成功’ } return JsonResponse(set)

def delete(self,request,*args,**kwargs): set={ ‘code’:100, ‘meg’:’删除成功’ } return JsonResponse(set)

*** 上面是几种常见的增删改查请求方式,(符合标准的 ) *** 另外,在写api的过程中你还会遇到post需要csrf认证,那么api怎么去除认证呢? 首先需要导入两个包,一个method_decorator,还有一个是csrf_exempt *** from django.views.decorators.csrf import csrf_exempt from django.utils.decorators import method_decorator *** 免去csrf验证用法,有两种方式, *** 1. @method_decorator(csrf_exempt,name=’dispatch’) class Order(View): 直接加在你的类前面。 2. @method_decorator(csrf_exempt) def dispatch(self, request, *args, **kwargs): return super(Order,self).dispatch(self, request, *args, **kwargs) 直接在sidpatch前面加入免除csrf验证即可免去csrf验证

***

今天是4月2号继续学习restfulapi接口 *** 今天内容是数据的返回,直接上代码吧 *** def get(self,request,*args,**kwargs): # 通过kwargs拿到api接口传递进来的数据 pk=kwargs.get(‘pk’) print(kwargs.get(‘pk’)) if not pk: # 如果pk为空就查询全部

book_list = [] all = models.Bookinfo.objects.all() for li in all: dic = {} dic[‘title’] = li.title dic[‘content’] = li.content book_list.append(dic) # 对json数据进行编码转换 return JsonResponse({‘status’: 100, ‘msg’: ‘ok’,’result’:book_list},json_dumps_params={‘ensure_ascii’:False})

else: # 如果pk一个就查询一个, 这里有个查询技巧,就是values直接把查询的值转化成字典,然后取出,必须要这步,不然就会报错了 a = models.Bookinfo.objects.filter(pk=pk).values(‘title’,’content’).first() print(a) json_dumps_params={‘ensure_ascii’:False}在浏览器上输出正常字符 return JsonResponse({‘status’:100,’msg’:’ok’,’result’:a},json_dumps_params={‘ensure_ascii’:False})

*** postman工具,提交方式有是那种,form-data,urlencoding,和json格式提交数据 原生django对urlencoding会进行解析兼容较好,其余的都不会进行解析 *** ##下面是rest_framework框架 *** from rest_framework.serializers import Serializer 序列化器 from rest_framework.views import APIView # 继承自View的api接口 from rest_framework.response import Response # 返回Response *** csrf问题,如果是继承自APIview中的话是默认局部禁用掉csrf验证的,所以,补助是csrf验证也是可以的,但是如果有继承自View的话就会默认开启csrf验证,这样的话View如果没有通过csrf验证就会抛出错误 *** 传送数据到外部称之为序列化,外部传送数据进来称反序列化

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020/04/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python进阶39-drf框架(一)
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
4.1K0
Python进阶39-drf框架(一)
Django Rest Framework
https://q1mi.github.io/Django-REST-framework-documentation/
vanguard
2020/07/07
2.3K0
Django-REST-framework 权限管理源码分析
:fa-user: :fa-heart: :fa-user: 同认证一样,dispatch()作为入口,从self.initial(request, *args, **kwargs)进入initial()
JuneBao
2022/10/26
6950
CMDB学习之六 --客户端请求测试,服
客户端使用agent 请求测试,agent使用的POST 请求,使用requests模块
py3study
2020/02/10
5440
Django REST framework+Vue 打造生鲜超市(四)
五、商品列表页 5.1.django的view实现商品列表页 (1)goods/view_base.py 在goods文件夹下面新建view_base.py,为了区分django和django rest framework的view 利用Django的view实现返回json数据 # goods/view_base.py from django.views.generic import View from goods.models import Goods class GoodsListView(Vie
zhang_derek
2018/04/11
4.8K0
Django REST framework+Vue 打造生鲜超市(四)
Cookie、Session
无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。
py3study
2020/01/19
1K0
Cookie、Session
Django-中间件-csrf扩展请求伪造拦截中间件-Django Auth模块使用-效仿 django 中间件配置实现功能插拔式效果-09
django 中间件 就类似于是 django 的门户,请求来的时候需要先经过 中间件 才能到达 django 后端(urls),响应走的时候也需要经过 中间件 才能到达 web服务网关接口(wsgif 模块)
suwanbin
2019/09/27
1.4K0
Django-中间件-csrf扩展请求伪造拦截中间件-Django Auth模块使用-效仿 django 中间件配置实现功能插拔式效果-09
Django CSRF认证的几种解决方案
浏览器在发送请求的时候,会自动带上当前域名对应的cookie内容,发送给服务端,不管这个请求是来源A网站还是其它网站,只要请求的是A网站的链接,就会带上A网站的cookie。浏览器的同源策略并不能阻止CSRF攻击,因为浏览器不会停止js发送请求到服务端,只是在必要的时候拦截了响应的内容。或者说浏览器收到响应之前它不知道该不该拒绝。
星星在线
2020/05/22
2K0
Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块
中间件的调用只需要在配置文件中添加,如果不使用某个中间件,只需要在配置文件中将对应的字符串注释掉就可以,这种调用执行某一代码的方式是不是很方便呢?下面我们就利用Django对中间件的调用的思想,将自己的功能也实现和中间件一样的调用方式。
GH
2019/12/16
8880
Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块
10.Django基础八之cookie和session
我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应。例如你给10086打个电话,你就是客户端,而10086服务人员就是服务器了。从双方接通电话那一刻起,会话就开始了,到某一方挂断电话表示会话结束。在通话过程中,你会向10086发出多个请求,那么这多个请求都在一个会话中。 客户向某一服务器发出第一个请求开始,会话就开始了,直到客户关闭了浏览器会话结束。
changxin7
2019/09/30
8450
10.Django基础八之cookie和session
Django之视图层与模板层
视图函数(类)简称为视图,就是一个普通的函数(类),它的功能是接收web请求,并返回web响应.
GH
2019/12/16
9.2K0
不会DRF?源码都分析透了确定不来看?
目录 不会DRF?源码都分析透了确定不来看? 快速使用DRF写出接口 序列化和反序列化 drf快速使用 views.py serializer.py urls.py 在settings的app中注册 models.py postman测试 CBV源码流程分析 Django View和DRF APIView的小插曲 DRF之APIView和Request对象分析 APIView的执行流程 Request对象分析 原来的django中没有request.data,造一个! 不会DRF?源码都分析透了确定不来看?
HammerZe
2022/05/09
1.3K0
不会DRF?源码都分析透了确定不来看?
初次就这么给了你(Django-rest-framework)
工程已经创建好了,需要cd进工程里边,关键是manage.py在工程里边,我们就需要借用manage.py来进行其他的操作了。
Wyc
2018/09/11
1.2K0
Python进阶34-Django 中间件
-多年互联网运维工作经验,曾负责过大规模集群架构自动化运维管理工作。 -擅长Web集群架构与自动化运维,曾负责国内某大型金融公司运维工作。 -devops项目经理兼DBA。 -开发过一套自动化运维平台(功能如下): 1)整合了各个公有云API,自主创建云主机。 2)ELK自动化收集日志功能。 3)Saltstack自动化运维统一配置管理工具。 4)Git、Jenkins自动化代码上线及自动化测试平台。 5)堡垒机,连接Linux、Windows平台及日志审计。 6)SQL执行及审批流程。 7)慢查询日志分析web界面。
DriverZeng
2022/09/26
1.8K0
Python进阶34-Django 中间件
cookie、session、分页
无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。
py3study
2020/02/10
2.1K0
Cookie和Session
cookie Cookie的由来 大家都知道HTTP协议是无状态的。 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此cookie就是在这样一个场景下诞生。 什么是co
人生不如戏
2018/04/12
9580
Cookie和Session
Django 中间件
中间件就是介于request与response处理之间的一道处理过程,相对比较轻量级,并且在全局上改变django的输入与输出。因为改变的是全局,所以需要谨慎使用。
py3study
2020/01/20
1.1K0
03.Django基础三之视图函数
  一个视图函数(类),简称视图,是一个简单的Python 函数(类),它接受Web请求并且返回Web响应。
changxin7
2019/09/29
5K0
03.Django基础三之视图函数
用django写接口(入门篇)
博客:https://www.jianshu.com/u/9fcd71535294
陈宇明
2020/12/15
3.2K0
用django写接口(入门篇)
Django学习笔记之Cookie、Session和自定义分页
cookie Cookie的由来 大家都知道HTTP协议是无状态的。 无状态的意思是每次请求都是独立的,它的执行情况和结果与前面的请求和之后的请求都无直接关系,它不会受前面的请求响应情况直接影响,也不会直接影响后面的请求响应情况。 一句有意思的话来描述就是人生只如初见,对服务器来说,每次的请求都是全新的。 状态可以理解为客户端和服务器在某次会话中产生的数据,那无状态的就以为这些数据不会被保留。会话中产生的数据又是我们需要保存的,也就是说要“保持状态”。因此Cookie就是在这样一个场景下诞生。 什么是Co
Jetpropelledsnake21
2018/07/04
8930
相关推荐
Python进阶39-drf框架(一)
更多 >
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文