首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    rest_framework之解析器、路由控制、分页

    解析器 我们都知道,网络传输数据只能传输字符串格式的,如果是列表、字典等数据类型,需要转换之后才能使用 但是我们之前的rest_framework例子都没有转换就直接可以使用了,这是因为rest_framework...分页 继承APIView类的视图中添加分页 from rest_framework.pagination import PageNumberPagination class MyPageNumberPagination...size参数临时改变当页显示的数目 max_page_size=10 # 可以在url中使用size参数临时改变当页显示的数目,但是最大只能显示10条 class AuthorsView(APIView...,many=True) return Response(auts.data) 继承ModelViewSet类的视图中添加分页 如果我们的视图继承了ModelViewSet类,那么如需分页的时候...类是我们自己定义的类,见上面一个示例。

    46900

    Python进阶42-drf框架(四)

     如果认证通过,后台就可以从request.user中拿到用户 from rest_framework.views import APIView from rest_framework.generics...,代表有权限,返回True ii.不满足设置的用户条件,代表有权限,返回False """ 频率组件 ---- 频率类源码 入口 # 1)APIView的dispath方法中的 self.initial...需求:短信接口 1/min 频率限制 ---- 步骤 # 1) 自定义一个继承 SimpleRateThrottle 类的频率类 # 2) 设置一个 scope 类属性,属性值为任意见名知意的字符串...# 3) 在settings配置文件中,配置drf的DEFAULT_THROTTLE_RATES,格式为 {scope字符串: '次数/时间'} # 4) 在自定义频率类中重写 get_cache_key...方法 # 限制的对象返回 与限制信息有关的字符串 # 不限制的对象返回 None (只能放回None,不能是False或是''等) ---- throttles 频率类 首先先在api

    1.7K20

    DjangoRestFramework,restful规范、APIview、解析器组件、Postman等

    ,为什么get请求就能找到类的get方法,post请求就能找到post方法,其内部有个dispatch方法来进行分发,这又怎么玩呢,看源码啦,从哪里看呢?...REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移”     REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过...这没有统一的规定,但是常见的操作是读取一个集合,比如GET /articles(读取所有文章),这里明显应该是复数。         ...更好的做法是,除了第一级,其他级别都用查询字符串表达。 GET /authors/12?categories=2       下面是另一个例子,查询已发布的文章。你可能会设计成下面的 URL。...组件     在我们的视图中,通过CBV来写视图的时候,继承APIView,url不变,还是上面那个,通过浏览器访问,照样能够看到我们返回的数据,     views.py内容如下: from django.shortcuts

    2.5K20

    Python进阶39-drf框架(一)

    State Transfer的简称,中文翻译为“表征状态转移” 2.REST从资源的角度类审视整个网络,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态...在服务器更新资源(客户端提供改变后的完整资源) PATCH :在服务器更新资源(客户端提供改变的属性) DELETE :从服务器删除资源 过滤,通过在url上传参的形式传递搜索条件 https://api.example.com..."" 1) 请求走的是APIView的as_view函数 2) 在APIView的as_view调用父类(django原生)的as_view,还禁用了 csrf 认证 3) 在父类的as_view中...dispatch分发请求走的又是APIView的dispatch 4) 完成任务方法交给视图类的请求函数处理,得到请求的响应结果,返回给前台 """ 请求模块 ---- 源码入口 APIView类的...] # 重点:self.renderer_classes获取renderer_classes的顺序 # 自己视图类的类属性(局部配置) => # APIView类的类属性设置 => #

    4.1K30

    DRF框架(十二)——认证Authentication,权限Permissions

    # 基本认证 'rest_framework.authentication.SessionAuthentication', # session认证 ) } 也可以在每个视图中通过设置...认证失败会有两种可能的返回值: 401 Unauthorized 未认证 403 Permission Denied 权限被禁止 权限 可以在配置文件中设置默认的权限管理类,如 REST_FRAMEWORK...如果未指明,则采用如下默认配置 'DEFAULT_PERMISSION_CLASSES': ( 'rest_framework.permissions.AllowAny', ) 也可以在具体的视图中通过...class ExampleView(APIView): permission_classes = (IsAuthenticated,) ......,否则只能get读取 自定义权限 如需自定义权限,需继承rest_framework.permissions.BasePermission父类, 并实现以下两个任何一个方法或全部 .has_permission

    2K20

    Django Rest Framewor

    什么是RESTful REST与技术无关,代表的是一种软件架构风格,REST是Representational State Transfer的简称,中文翻译为“表征状态转移” REST从资源的角度类审视整个网络...,它将分布在网络中某个节点的资源通过URL进行标识,客户端应用通过URL来获取资源的表征,获得这些表征致使这些应用转变状态 所有的数据,不过是通过网络获取的还是操作(增删改查)的数据,都是资源,将一切数据视为资源是...,如:https://api.example.com/v1/ 放到请求头中                                         跨域时,引发发送多次请求 路径,视网络上任何东西都是资源...(一项或多项) POST    :在服务器新建一个资源 PUT      :在服务器更新资源(客户端提供改变后的完整资源) PATCH  :在服务器更新资源(客户端提供改变的属性) DELETE :从服务器删除资源...= [ url(r'^test/', TestView.as_view()), ]    views.py: from rest_framework.views import APIView

    1.3K20

    Python进阶41-drf框架(三)

    视图类传递参数给序列化类 二次封装Response 视图家族简介 generics APIView视图基类 mixins视图六大工具类 generic中的工具视图 视图集viewsets...=> GenericAPIView => mixins的五大工具类 => generics中的工具视图 => viewsets中的视图集 """ generics APIView视图基类 先把之前序列化的东西保存下来...总结: 1.get_queryset():从类属性queryset中获得model的queryset数据 2.get_object():从类属性queryset中获得model的queryset数据,...的,使用完全兼容APIView # 重点:GenericAPIView在APIView基础上完成了哪些事 # 1)get_queryset():从类属性queryset中获得model的queryset...,用来完成标准的 model 类操作接口 # 3)ViewSet继承的是APIView视图类,用来完成不需要 model 类参与,或是非标准的 model 类操作接口 # post请求在标准的

    56520

    从零搭建一个django项目-2-第一个接口天气预报(下)

    上一章我们写好了天气类,今天将其合到django接口里。 01 — 添加url 一个web程序当然要有url入口。django的url设置在 urls.py里。...Response({"city":city}) 运行以后输入地址: http://127.0.0.1:8000/api/get_weatherinfo_base/北京/ 可以看到成功返回了,说明从入口到视图类到返回是通的...02 — 添加实现视图类 from rest_framework.response import Response from rest_framework.views import APIView from...tianqi = Gaode_tianqi(city).get_weatherinfo_all() return Response({"datas":tianqi}) 两个视图类分别调用了天气类的两个方法...天气获取接口结束,下一章讲解怎么将数据储存到数据库中,我使用的数据库是mysql,因为我之前的项目已经搭好了我就不讲解怎么搭数据库了搜索引擎都有。

    48220

    day95-分页组件

    page=2&size=3 从第2页开始显示,每一页显示3条数据 """ # 一页显示两条数据 page_size = 2 # url 拼接查询关键字,...page=n,从第n页开始 page_query_param = 'page' # url 拼接查询关键字,size=m,每页显示m条数据,不超过 max_page_size...offset=2&limit=4 从第3条数据开始显示,每一页显示4条数据 """ # 每一页默认显示 1 条数据 default_limit = 1 # url...拼接查询关键字,limit=n,每一页显示多少条 limit_query_param = 'limit' # url 拼接查询关键字,offset=m,从第m+1条数据开始显示...DRF 直接提供继承的 viewsets.ModelViewSet,不是 day93自己写的 QQ截图20200301225108.png 5.2进入viewsets.ModelViewSet可以看到其实它已经帮助我们直接继承了所有的类

    57400

    【从零学习OpenCV 4】这4种读取Mat类元素的的方法你都知道么?

    对于Mat类矩阵的读取与更改,我们已经在矩阵的循环赋值中见过如何用at方法对矩阵的每一位进行赋值,这只是OpenCV提供的多种读取矩阵元素方式中的一种,本小节将详细介绍如何读取Mat类矩阵中的元素,并对其数值进行修改...在学习如何读取Mat类矩阵元素之前,首先需要知道Mat类变量在计算机中是如何存储的。...常用的Mat类矩阵的元素读取方式有:通过at方法进行读取、通过指针ptr进行读取、通过迭代器进行读取、通过矩阵元素的地址定位方式进行读取。接下来将详细的介绍这四种读取方式。...1 01 通过at方法读取Mat类矩阵中的元素 通过at方法读取矩阵元素分为针对单通道的读取方法和针对多通道的读取方法,在代码清单2-19中给出了通过at方法读取单通道矩阵元素的代码。...从零学习OpenCV 4往期推荐 【从零学习OpenCV 4】Mat类介绍 【从零学习OpenCV 4】Mat类构造与赋值 【从零学习OpenCV 4】Mat类支持的运算

    3.7K30

    Django进阶篇 Rest framework (一)

    1、FBV fbv 就是在 url 中一个路径对应一个函数。 在视图函数中 2、CBV cbv 就是在 url 中一个路径对应一个类,drf 主要使用 CBV。...方法,就应该到父类(ImageView 的父类 View)中看下 View。...CBV:请求通过 uwsgi 网关,中间件,然后进入路由匹配,这里就与 FBV 有区别了,因为不再是视图函数而是视图类,会先经过父类-View 的 dispath 方法,进行请求方法的判断,再分发到视图类的方法...在 drf 中主要使用 CBV,生命周期就变成: 请求通过 uwsgi 网关,中间件,然后进入路由匹配,这里就有区别了,先经过 drf 中-APIView 类中的 dispath 方法(这里假定视图类没有重写...APIView 中的 dispath 方法),在 dispath 中对 request 请求进行封装,反射回到视图类,连接数据库 ORM 操作,模板渲染,返回经过中间件,最终交给浏览器响应字符串。

    74330

    重点内容回顾-DRF

    5.5.2视图基类 5.5.2.1APIView 是View类的子类,在View类的基础上添加了一些额外的功能。...功能: 1.视图中request对象不再是Django中原始的HttpRequest类的对象,而是DRF框架封装的Request类的对象。...Response类的对象:传入原始的响应数据,会自动根据客户的请求头中 Accept将响应数据转换为对应的格式进行返回,默认是json,仅支持json和html 3.异常处理:如果视图中抛出了未处理异常...4.高级功能:认证、权限、限流 5.5.2.2GenericAPIView 是APIView的子类,在APIView的基础上添加操作序列化器和数据库查询的方法。...为了方便我们开发RestAPI,DRF框架除了提供APIView和GenericAPIView视图类之外,还提供了一些子类视图类,这些子类视图类同时继承了GenericAPIView和对应的Mixin扩展类

    2.5K20

    day93-视图封装&路由组件&版本控制

    1.视图的第一次封装和第二次封装 1.第一次封装和第二次封装(第二次封装仅仅是整合继承类) 1.1 首先明确封装,因为不同的增删改查的区别就在于 表 不同,序列化器 不同, 表 和 序列化类可以写一个类方法里面...1.2 单条查询和多条查询不一样,分开写 1.3 所以策略是: -- 先写一个基类,定义空的 queryset 和 serializers 用来被继承后重写, -- 单条的再写单独的类...第三层封装基本不怎么用 2.1 第三层封装在视图中 2.1.1 写一个类继承所有的二次封装类 2.1.2 再继承一个 ViewSetMixin 类,from rest_framework.viewsets...= Book.objects.all() serializers_class = BookSerializer 2.2 封装类在url里面配置传参(注意 id 用 pk 代替,不要使用 id...class VersionDemo(APIView): # 这里也可以对单独的某个视图请求配置版本 # versioning_class = MyVersion def get

    39700
    领券