首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

5 分钟,带你快速入门 Django DRF

项目地址: https://github.com/encode/django-rest-framework 本篇文章将带大家 5 分钟快速入门 DRF 2....实现步骤 详细使用步骤如下( 10 步) 2-1 创建虚拟环境 使用 mkvirtualenv 创建一个单独的虚拟环境,指定 Python 版本为 3.7 # 创建虚拟环境,名称为:django3 #...打开目标文件夹目录,使用「 django-admin startproject 」命令创建一个 Django 项目 # 创建一个django项目 # 项目名称:drf_demo django-admin...打开 Pycharm,在项目根目录下,进入虚拟环境,使用内置的「 sqlite 」进行数据库映射,并创建一个超级用户 # 进入虚拟环境 workon django3 # 数据库映射(sqlite3)...'email', 'is_staff'] PS:序列化用于定义 API 的表现 2-7 定义视图 ViewSets 在 urls.py 文件中,定义一个视图表现类,让他继承于「 viewsets.ModelViewSet

1.7K20
您找到你想要的搜索结果了吗?
是的
没有找到

第 5 篇:用视图集,简化你的代码

要注意一点的是,视图集基类提供的是除资源操作以外的通用逻辑(例如 HTTP 请求预处理、HTTP 响应后处理、认证、鉴权等),而对于资源的操作(序列化、更新、删除资源等)则放在相应的 Mixin 混入类里...django-rest-framework 提供了资源操作的 5 个混入类,分别对应资源的创建、查询、更新、删除。...事实上,使用路由器自动生成 URL 模式,路由器内部就是采用了和上面手工生成视图函数并绑定 URL 一样的方式。...运行开发服务器,访问 http://127.0.0.1:8000/api/,界面如下: django-rest-framework 为我们自动生成了 API 交互后台,在这个界面中可以和我们创建的 API...但是我们的博客文章列表是有分页功能的,接下来我们就使用 django-rest-framework 提供的分页辅助类,一行代码就可以完成分页功能。

80610

【愚公系列】2022年04月 Python教学课程 70-DRF框架之视图集

文章目录 前言 一、基本视图集 1.ViewSet 2.GenericViewSet 二、扩展视图集 1.ModelViewSet 2.ReadOnlyModelViewSet 三、用法补充 1.扩展方法使用...前言 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据...ViewSet主要通过继承ViewSetMixin来实现在调用as_view()传入字典({‘get’:‘list’})的映射处理工作。...GenericViewSet就帮助我们完成了这样的继承工作,继承自GenericAPIView与ViewSetMixin,在实现了调用as_view()传入字典({‘get’:‘list’})的映射处理工作的同时...from rest_framework.routers import SimpleRouter,DefaultRouter urlpatterns = [ # ModelViewSet使用

1.6K30

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

201:表示资源创建成功。 400:表示客户端请求错误。...和表单类似,django-rest-framework 的序列化器也可以根据关联的模型,自动检测被序列化模型各个属性的数据类型,推测需要使用的序列化字段,无需我们显示定义。...ModelSerializer ,只需要在序列化器的内部类 Meta 中指定关联的模型,以及需要序列化的模型属性,django-rest-framework 就会根据各个属性的数据类型,自动推测需要使用的系列化字段...而对于文章关联的 category、author,它们本身也是一个对象,django-rest-framework 就无法推测该使用什么类型的系列化字段来序列化它们了。...接下来,让我们使用 django-rest-framework 提供的通用类视图,将首页 API 的视图函数改为类视图。

98920

第 9 篇:实现分类、标签、归档日期接口

回顾一下我们之前在使用视图集 viewset 提到过 action(动作)的概念,django-rest-framework 预定义了几个标准的动作,分别为 list 获取资源列表,retrieve...django-rest-framework 将常用 HTTP 请求的状态码常数预定义 status 模块里,使用预定义的变量而不是直接使用数字的好处一是增强代码可读性,二是减少硬编码。...对于这样的场景,我们可以在请求 API 加上查询参数,django-rest-framework 解析查询参数,然后从全部文章列表中过滤出查询所指定的文章列表再返回。...django-rest-framework 中非常方便地使用 django-filter。...其中 filter_backends 设置为 DjangoFilterBackend,这样 API 在返回结果django-rest-framework 会调用设置的 backend(这里是 DjangoFilterBackend

2.6K30

Django DRF路由与扩展功能的实现

视图集与路由的使用 使用视图集ViewSet,可以将一系列逻辑相关的动作放到一个类中: list() 提供一组数据 retrieve() 提供单个数据 create() 创建数据 update() 保存数据...ViewSet主要通过继承ViewSetMixin来实现在调用as_view()传入字典({‘get’:’list’})的映射处理工作。...GenericViewSet就帮助我们完成了这样的继承工作,继承自GenericAPIView与ViewSetMixin,在实现了调用as_view()传入字典({‘get’:’list’})的映射处理工作的同时...扩展功能 为了方便接下来的学习,我们创建一个新的子应用 opt python3 manage.py startapp opt 因为接下来的功能中需要使用到登录功能,所以我们使用django内置admin...站点并创建一个管理员.

3K30

Django REST Framework-如何使用视图集(三)

例如,在 BookViewSet 中,我们可以定制 create() 方法,以便在创建新书籍自动将当前用户设置为书籍的作者:class BookViewSet(viewsets.ModelViewSet...serializer.save(author=self.request.user)在这个例子中,我们在 BookViewSet 中重写了 perform_create() 方法,该方法会在创建新书籍被调用...我们使用 self.request.user 获取当前请求的用户,并将其设置为新书籍的作者。...另一个例子是定制 list() 方法,以便在获取书籍列表只返回当前用户的书籍:class BookViewSet(viewsets.ModelViewSet): serializer_class...我们使用 self.request.user 获取当前请求的用户,并将其用于过滤书籍列表,只返回当前用户的书籍。视图集类型DRF 中提供了多种视图集类型,可以根据不同的需求选择合适的视图集类型。

60131

Django REST Framework-分页(二)

LimitOffsetPagination 示例以下是一个简单的使用 LimitOffsetPagination 分页器的示例:class BookViewSet(viewsets.ModelViewSet...Book.objects.all() serializer_class = BookSerializer pagination_class = BookPagination在这个例子中,我们创建了一个名为...现在,当客户端发起请求,我们的 BookViewSet 视图集合将使用 BookPagination 分页器将查询结果划分为多个页面,并将每个页面的数据返回给客户端。...Book.objects.all() serializer_class = BookSerializer pagination_class = BookPagination在这个例子中,我们创建了一个名为...现在,当客户端发起请求,我们的 BookViewSet 视图集合将使用 BookPagination 分页器将查询结果划分为多个页面,并将每个页面的数据返回给客户端。

27151

drf之请求、响应、视图

1.2 Response(响应) drf 提供了一个响应类Response,使用该类构造响应对象,响应的具体数据内容会被转换(render渲染)成符合前端需求的类型。...提供的关于序列化器使用的属性与方法 属性:serializer_class  指明视图使用的序列化器 方法: get_serializer_class(self) : 当出现一个视图类中调用多个序列化器...注意: 该方法在提供序列化器对象的时候,会向序列化器对象的context属性补充三个数据:request、format、view,这三个数据对象可以在定义序列化器使用。...**ViewSet主要通过继承ViewSetMixin来实现在调用as_view()传入字典({‘get’:’list’})的映射处理工作。...GenericViewSet就帮助我们完成了这样的继承工作,继承自GenericAPIView与ViewSetMixin,在实现了调用as_view()传入字典({'get':'list'})的映射处理工作的同时

2.1K20
领券