前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >DRF项目(二)view代码的书写

DRF项目(二)view代码的书写

作者头像
一写代码就开心
发布2021-03-02 14:44:44
3580
发布2021-03-02 14:44:44
举报
文章被收录于专栏:java和python

目录

  • 产品列表
  • 分页进行显示的

产品列表

这个api路径,可以实现的功能是:筛选,分页,列表全部数据,搜索 一个api路径,后面的参数是不一样的,所以功能是不一样的

数据库里面有数据了,我们就可以和前端进行联系,先做一个产品列表 在view里面先将数据库数据拿出来

最好是每一个功能有一个api路径,这样是好查看,这个列表功能是将产品的全部的数据拿出来,返回给前端 还可以筛选和查数据功能,这个只需要在列表view里面加代码就可以。

#父类ListAPIView是只有列表功能,如果父类变为ListCreateAPIView,那么既可以看列表,也可以改列表 这个类名字是根据这个类作用起的名字。继承父类可以根据需求,现在是只是显示列表,所以直接继承这个就可以了。

代码语言:javascript
复制
class ProductListView(generics.ListAPIView):
    '''产品列表'''
将数据库里面的数据都取出来,
    queryset=Product.objects.all()
数据库对象的字段有很多,那么哪些字段要显示在前端呢?就是在序列化里面进行设置
    serializer_class=ProductListSerializer
    # 以下代码就是表示  谁都可以看这个列表   默认就是这个,不写也可以
    permissin_classes=(permissions.AllowAny,)
    #写上这个字段  就是可以在前段显示一个排序 的按钮,你可以选择按照一些条件进行排序,还有搜索的按钮
也就是写了这个时候,前端可以根据产品的全部的字段进行升序和降序进行排序,还可以根据全部的字段进行搜索
    filter_backends = (OrderingFilter,SearchFilter)
    # 排序的字段,也就是我们可以按照哪些字段进行排序
    ordering_fields=('category','manufacturer','created','sold',)
    # 搜索的字段  设置按照哪些字段进行搜索
    search_fields=('description','model')
    ordering=('id',)
    # 分页进行显示的,只要写这个,前端就可以自定义显示的条数和第几页
    pagination_class = LimitOffsetPagination
代码语言:javascript
复制
  filter_backends = (OrderingFilter,SearchFilter)

只要后端写了这个,前端就可以根据全部的字段进行排序,搜索,比如格式是这样的
ordering是特定的,名字就是这样,记住。后面是要根据哪个字段进行排序ordering=price是升序,ordering=-price降序
http://127.0.0.1:8000/computer/product_list/?ordering=price

后端定义前端可以使用的字段,这些要告诉前端
ordering_fields=('category','manufacturer','created','sold',)
后端定义前端可以使用的字段,这些要告诉前端,前端就可以根据这些字段进行搜索
search_fields=('description','model')
http://127.0.0.1:8000/computer/product_list/?search='aaa'

我们需要在前段让用户进行设置,到底一页显示多少个数据,还有就是用户查看对应页数的数据。这个时候我们需要在 后端加一句话

分页进行显示的

代码语言:javascript
复制
pagination_class = LimitOffsetPagination

在view里面加了这句话,那么前段我们看到页面的url就变为 http://127.0.0.1:8000/computer/product_list/?limit=2&offset=5 本来是没有问号后面的参数的,但是加了这个代码,前段就可以根据问号后面的参数进行选择一页显示多少数据,还有就是要看第几页的数据 limit参数是一页显示多少个数据 offset是第几页的数据。

所以前段里面ajax的路径就是现在的url里面的路径

后端传到前段的有对应的前一页和后一页的连接,就可以在前段将这些字段取出来,放到对应的位置就可以了

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2021/02/11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 目录
  • 产品列表
  • 分页进行显示的
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档