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

例如这里 basename='post',列出资源列表的 action 为 list(见上一篇教程中关于 action 的讲解),所以生成的获取文章资源列表的视图函数名为 post-list,使用 reverse('post-list') 就可以解析出获取文章资源列表的 API(URL)。

basename 可以不指定,django-rest-framework 会自动从视图集 get_queryset 方法返回的结果所关联的 model 获取一个默认值,其值为 model 名小写。不过,根据 Python 之禅,显式优于隐式,因此即使你设置的 basename 和 django-rest-framework 默认生成的一样,也比不指定要好。

刚才说了,我们使用 DefaultRouter 这个路由器,它会自动帮我们注册一个根路由,来看看根路由下有什么。

运行开发服务器,访问 :8000/api/,界面如下:

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

django-rest-framework 为我们自动生成了 API 交互后台,在这个界面中可以和我们创建的 API 交互,非常方便。API 交互后台首页是所有注册的视图集对应的 URL。目前只有一条 /api/posts/,点击超链接进去,可以看到 /api/posts/ 的返回结果,即全部文章列表。

但是,目前我们的 api 一股脑将全部文章列表的返回了。但是我们的博客文章列表是有分页功能的,接下来我们就使用 django-rest-framework 提供的分页辅助类,一行代码就可以完成分页功能。

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

关注公众号加入交流群

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zydpwg.html