首页
学习
活动
专区
圈层
工具
发布

Django REST Framework-路由器(一)

Django REST Framework(以下简称DRF)是基于Django框架构建的Web API框架。...路由器可以根据视图函数的名称和参数,自动生成URL,并将请求分发到对应的视图函数中。使用路由器可以避免手动编写URL配置的繁琐和容易出错。二、路由器的使用安装DRF在使用路由器之前,需要先安装DRF。...使用视图集需要先定义一个继承自ModelViewSet或ViewSet的类,然后将这个类传递给路由器的register方法即可。...这个方法需要将视图函数包装成APIView或View的子类,然后将这个类的实例传递给路由器的register方法即可。...例如,下面的代码定义了一个继承自APIView的视图类HelloView,然后将这个类注册到路由器中:from rest_framework.views import APIViewfrom rest_framework.response

1.1K41
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    第 3 篇:实现博客首页文章列表 API

    这些过程 django 默认的视图函数在处理 HTTP 请求时是没有提供的,而经过 api_view 装饰后的视图,则提供了上述全部功能。...此外,通过传入 status 参数,指定 HTTP 响应的状态码。 小贴士 请了解常用的 HTTP 状态码。...回顾一下 index API 视图函数的基本逻辑: 从数据库取数据 构造序列化器并将取出的数据序列化 返回响应 这其实是访问序列型的资源比较常见的逻辑,我们知道,django 专门为这种在 Web 开发中常用的逻辑提供了一系列基于类的通用视图...只是 django 的通用视图适用于基于模板引擎的开发方式,同样的,django-rest-framework 也提供了专门针对 RESTful API 开发过程中常用逻辑的类视图通用函数。...接下来,让我们使用 django-rest-framework 提供的通用类视图,将首页 API 的视图函数改为类视图。

    1.9K20

    drf的接口文档生成与管理

    的 下面记录在drf中通过swagger生成接口文档的具体实现流程,参考drf swagger文档 3.2 安装django-rest-swagger库 pip3 install django-rest-swagger...4.6 更多配置及说明 4.6.1 get_schema_view的配置 函数 get_schema_view 的作用是返回自动生成 API 文档的视图类, 该函数接受以下参数: info: Swagger...: 用于schema view进行登录认证的类 permission_classes: 用于schema view进行权限校验的类 4.6.2 SchemaView 的配置 通过函数get_schema_view...实现开箱即用的缓存功能, 只需要配置对应的参数即可启用, 对应参数解释如下: cache_timeout: 用于指定缓存的生存时间 cache_kwargs: 用于传递 cache_page 允许接受的非位置参数...API 文档(通过public、authentication_classes、permission_classes等参数配置), 因此对于不同用户(通过HTTP 请求头中的 Cookie 和 Authorization

    5.6K10

    django-rest-framewor

    DRF(Django RestFramework)是一套基于Django开发的、帮助我们更好的设计符合REST规范的Web应用的一个Django App,所以,本质上,它是一个Django App。...定义:需要为post新增url,因为根据规范,url定位资源,http请求方式定义用户行为 定义post方法:在视图类中定义post方法 开始序列化:通过我们上面定义的序列化类,创建一个序列化对象,传入参数...程序启动,开始初始化,获取配置信息,获取视图类并加载到内存中,获取url及视图类的对应关系 开始绑定视图类和url的对应关系,执行as_view()方法 as_view()方法被执行的时候传递了参数,为字典形式...:{ “get”: “retrieve”, “delete”: “destroy”, “put”: “update” } 上一步中执行as_view()方法传递参数的目的是为了完成优化,将delete请求方式重新命名为不同的函数...),开始执行dispatch方法,注意self是视图类的实例化对象(每个请求都被封装为一个对象) dispatch开始执行get方法,注意此时的get方法会执行retrieve,以为已经被重定向了 开始执行

    2.2K10

    DRF框架学习(四)

    在执行视图的dispatch()方法前,会先进行视图访问权限的判断 在通过get_object()获取具体对象时,会进行对象访问权限的判断 DRF框架提供了四个权限控制类: AllowAny允许所有用户...', # 仅仅允许认证用户进行访问 ) } 也可以在具体的视图中通过 permission_classes属性来指定某个视图所使用的权限控制类,如: from rest_framework.permissions...8.1使用方法: 在类视图中设置filter_backends,使用 rest_framework.filters.OrderingFilter过滤器,REST framework会在请求的查询字符串参数中检查是否包含了...前端可以传递的ordering参数的可选字段值需要在ordering_fields中指明。...= None 9.2自定义分页类 也可通过自定义Pagination类,来为视图添加不同分页行为。

    3.7K40

    构建强大的API-Django中的REST框架探究与实践

    Django REST框架允许我们根据客户端的请求格式,动态地选择响应格式。...例如,我们可以编写基于APITestCase的测试类来测试API的各种端点和功能。另外,为了方便使用和理解API,我们还可以使用Django REST框架提供的文档工具来自动生成API文档。...通过在settings.py中配置相应的参数,我们可以轻松地生成API文档,并提供给开发者参考和使用。11. 异步视图与性能优化随着Web应用程序的复杂性增加,处理大量请求的能力变得至关重要。...Django REST框架通过@api_view装饰器和async关键字支持异步视图。...Django REST框架提供了内置的测试工具和类,可以帮助我们编写各种类型的测试。例如,我们可以编写基于APITestCase的测试类来测试API的各种端点和功能。25.

    2.6K20

    Python Django 编程 | 连载 03 - Django 视图

    二、Django 视图的细节 视图的组成 一个视图函数可以看作由三个部分组成, 用户的请求 request 对用户请求的逻辑处理 handler 将处理后的数据批量返回给用户的响应 response...用户的请求 request 浏览器向服务发送的请求在 Django 中是一个 request 对象,该兑现更包含了用户的信息、请求内容和请求方法,且视图函数中必须要包含一个实例化的 request 对象作为视图函数的参数...Django 中的视图类 Django 中支持视图类写法,视图类要继承 View 类,并通过定义 get 方法和 post 方法来处理前端发来的 GET 请求和 POST 请求,而不用向视图函数那样要先通过...在 views.py 中定义一个实体类 Whiskey 类,继承 View 类,定义 get 函数处理 GET 请求 from django.views import View class Whiskey...RESTful 风格使使请求路径变得更加简洁,传递、获取参数值更加方便,并且框架会自动进行类型转换。

    93820

    Python 如何开发出RESTful Web接口,DRF框架助力灵活实现!

    Django Rest Framework 正是基于Rest架构风格设计的一款 后端API 框架。...1 - patch请求:局部修改ID为1的用户 https://api.github.io/users/1 - delete请求:删除ID为1的用户 6、通过在url上传参的形式传递搜索条件 https...DRF 简介 Django REST framework 是一个建立在Django基础之上的Web 应用开发框架,可以快速的开发REST API接口应用。...DRF优点: • 提供了定义序列化器Serializer的方法,可以快速根据 Django ORM 或者其它库自动序列化/反序列化; • 提供了丰富的类视图、Mixin扩展类,简化视图的编写; • 丰富的定制层级...): class Meta: model = MyModel fields = 'all' 然后,创建一个基于类的视图: from rest_framework

    1K20

    python教程

    用我们的序列化来写常规的Django视图 让我们看看,使用我们新的序列化类,我们怎么写一些API视图。此刻,我们不会使用REST框架的其他特性,仅仅像写常规Django视图一样。...请求对象 REST框架介绍了一个请求(Request)对象,它扩展了常规的HttpResquest,并且,提供更灵活的请求解析。...用这些标识符代替纯数字的HTTP状态码是很好的注意。 装饰API视图 REST框架提供两个装饰器,你可以用它们来写API视图。 1 @api_view装饰器用在基于视图的方法上。...这些普遍的行为是通过REST框架的混合类(mixin classes)实现的。 让我们看看如何通过混合类(mixin classes)组建视图。下面是我们的views.py模型。...REST框架包括许多权限类(permission classes),我们可以使用这些权限类来现在视图的访问权限。

    6.3K10

    Django-DRF | 请求

    Django REST框架构建Web API。...Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。...默认输入url的请求方式即为get,当请求方式为get时,若带有需要传递的其他参数,则会将该参数的name和value补充在url中一并提交,post方式则将数据放在内容中一并提交,不再url中显示。...在浏览器发送的request数据包的header中,可以看到这些内容,例如: 一、CBV 视图里使用类处理请求,在url中一个路径对应一个类。...as_view()方法,是父类里面的方法 ] 视图函数 from django.views import View from django.http import HttpResponse class

    87920

    Django-rest-framework 是个什么鬼?

    其实,基于 django-rest-framework 的 RESTful API 的开发,过程是完全类似的: 绑定 URL 和视图函数。当用户访问某个 URL 时,调用绑定的视图函数进行处理。...编写视图函数的逻辑,根据 HTTP 请求类型,对请求的资源进行相应操作,这个过程通常涉及数据库的操作。...事实上,的确能够在 django 中返回 JSON 或者 XML 格式的数据,但是 django 框架本身只提供了十分基础的功能。...django-rest-framework 是基于 django 的拓展,专为 RESTful API 的开发而设计,提供了十分丰富的辅助类和函数,帮助我们方便地开发 API。...客户端对资源的操作通常是受限的,有些资源只能由经过身份认证或具有相应权限的用户才能操作,django-rest-framework 提供了丰富的认证类和鉴权类,帮助我们对用户的身份和权限进行校验。

    1.4K30

    Django Rest Framework

    ',namespace='rest_framework')), ] image.png 1、基本视图类-类基础视图(APIView) 不同于django常规的view类,优点: * 提供了更好用的request...Generic views) 基于类视图的主要好处之一是他们允许编写可重用的行为....REST框架提供的通用视图允许快速构建API观点紧密地映射到数据库模型,如果通用视图不适合的需要API, 可以使用常规APIView类,或重用mixin和基类使用的通用视图来组成自己的组可重用通用视图。...注意,mixin类提供操作方法而不是定义处理程序方法,比如. get()和. post(),直接。这允许更灵活的组合的行为。 通过rest_framework.mixins引用。...ViewSets 允许将一组相关的逻辑视图在一个类,ViewSet类是一个简单类型的基于类的观点,没有提供任何方法处理程序如.get()或. post(), 而代替提供方法比如.list()和create

    2.9K60

    如何让 Python 写的 API 接口同时支持 Session 和 Token 认证?

    Django 是 Python 语言中最受欢迎的 Web 框架之一。其开箱即用的特性,使得我们可以利用它快速搭建一个传统的 Web 应用。...如果让 Django 写的接口既支持 Token 认证,也能兼容 Django 自带的 Session 认证呢?DRF 框架本身就提供了支持。...在 DRF 中使用认证 在 DRF 框架中,可以通过 2 种方式配置认证方式。...一种是在 Django 的配置文件中通过 REST_FRAMEWORK变量全局设置认证模式,例如: REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES...同时,在 Web 页面进行接口请求的时候,需要在 headers 头里面带上X-CSRFToken参数,其值为 Django 的 csrf_token,例如: headers: {"X-CSRFToken

    3.2K20

    Django REST Framework 教程开篇

    首先恭喜你完成了 HelloDjango 全栈系列教程的第一步——Django 博客教程(第二版)[2],在这个教程中,我们学习了基于传统模板引擎的开发方式,前端展示的 HTML 页面由后端负责渲染,后端程序员包揽了前后端开发的全部工作...在客户端和服务器交互时,资源便以某种描述的格式进行传递。...如何解读前端的请求、如何使用指定的格式描述并传递资源等都是一系列标准化且重复的工作,所以可以由一套统一的框架来实现。...django 本身没有提供这样的处理框架,但 django 的第三方拓展——django-rest-framework 就是一套专门用来开发符合 REST 规范的 RESTful 接口的框架。...django-rest-framework 教程虽然延续 Django 博客教程(第二版)中的项目,但在内容上并无太大关联,如果你已经有了 django 基础(了解 ORM 以及类视图就行),就可以直接开始本教程

    1.2K20
    领券