天天要闻:Django REST Framework-如何使用视图集(一)

来源: 腾讯云 时间:2023-04-29 19:28:39


(相关资料图)

如何使用视图集

定义视图集

定义视图集需要继承 DRF 提供的视图集类,例如 ModelViewSet

from rest_framework import viewsetsfrom .models import Bookfrom .serializers import BookSerializerclass BookViewSet(viewsets.ModelViewSet):    queryset = Book.objects.all()    serializer_class = BookSerializer

在这个例子中,我们定义了一个 BookViewSet视图集,并将 Book模型的查询集设置为 Book.objects.all(),将 BookSerializer序列化器设置为默认序列化器。

注册视图集

接下来,需要将定义好的视图集注册到路由中。我们可以使用 DRF 提供的 DefaultRouter类来帮助我们自动生成 URL 配置。例如,在 urls.py文件中,我们可以这样注册 BookViewSet

from django.urls import path, includefrom rest_framework.routers import DefaultRouterfrom .views import BookViewSetrouter = DefaultRouter()router.register(r"books", BookViewSet)urlpatterns = [    path("", include(router.urls)),]

在这个例子中,我们首先导入了 DefaultRouter类和 BookViewSet视图集。然后,我们创建了一个路由对象 router,并使用 router.register()方法将 BookViewSet视图集注册到路由中。r"books"是 URL 的前缀,最终 URL 为 /books//books/{id}/等。最后,我们将 router.urls包含在 Django 的 URLConf 中,以便让 Django 可以将其添加到项目的 URL 配置中。

X 关闭

热门推荐

PHP-web框架Laravel-MVC架构

2023-04-29   腾讯云

PHP-web框架Laravel-MVC架构

2023-04-29   腾讯云

Deployment滚动更新-全球热闻

2023-04-29   腾讯云

PHP面向对象-ORM示例

2023-04-29   腾讯云

Gorm-自定义查询(一)

2023-04-29   腾讯云

PHP-web框架Laravel-MVC架构

2023-04-29   腾讯云

PHP-web框架Laravel-视图(一)

2023-04-29   腾讯云

kubernetes启动探针

2023-04-29   腾讯云

你们尽情游玩,他们全力护航

2023-04-29   湖北日报

kubernetes存活性探针使用

2023-04-29   腾讯云

kubernetes组件kube-apiserver介绍

2023-04-29   腾讯云

北京电影学院表彰优秀学生-今日快讯

2023-04-29   北京日报客户端

五一假期北京预计接待885万游客

2023-04-29   北京青年报官网

八一学校举行五四表彰大会和高三成人礼

2023-04-29   北京青年报官网

垃圾不再随风跑

2023-04-29   东方资讯

PHP-基本数据类型-布尔型

2023-04-29   腾讯云

民声丨短视频公开晒娃要斟酌|焦点消息

2023-04-29   中工网-工人日报

PHP-基本数据类型-布尔型

2023-04-29   腾讯云

【全球独家】预防接种门诊 全市超700家

2023-04-29   北京青年报官网

旷世绝美话故宫(之二)

2023-04-29   北京青年报官网

创圣大天使LOGOS_创圣大天使

2023-04-29   互联网

世界观察:etcdctl命令使用

2023-04-28   腾讯云

kubelet参数

2023-04-28   腾讯云

kubelet参数_环球聚焦

2023-04-28   腾讯云

PHP面向对象-HTTP响应的处理

2023-04-28   腾讯云

每日快看:etcdctl命令使用

2023-04-28   腾讯云

Copyright   2015-2022 中国行业信息网版权所有  备案号:   联系邮箱:29 59 11 57 8@qq.com