Django REST app添加搜索功能和分页功能
2018-03-02 21:00
513 查看
页面的过滤功能和分页功能
在Django REST中框架提供了非常方便操作的过滤功能和分页功能。这些功能既能在settings中直接设置成全局的功能,又能在不同的视图类中使用设置成具体页面的功能。过滤功能
Django REST 中过滤主要提供两部分功能。一是搜索功能,
二是排序功能。
SearchFilter
OrderingFilter
具体的代码设置如下:
1.首先在settings中安装过滤功能app
INSTALLED_APPS = [ ... 'rest_framework', 'django_filters', #网页搜索功能 'corsheaders', ... ]
2.settings全局设置过滤功能(若要针对具体页面定制过滤功能,可以之后在具体views中声明,具体的功能会覆盖掉全局设置的功能):
REST_FRAMEWORK = { 'DEFAULT_FILTER_BACKENDS': ('django_filters.rest_framework.DjangoFilterBackend',) }
3.局部视图类设置过滤功能(设置具体的搜索功能):
#导入排序过滤器类和搜索过滤器类 from rest_framework.filters import OrderingFilter, SearchFilter class ProductListView(generics.ListAPIView): """ 产品列表 """ ... #筛选器后台,搜索过滤器和排序过滤器 filter_backends = (SearchFilter, OrderingFilter,) #搜索的是description字段的内容 search_fields = ('description',) #排序功能根据以下的四个字段排序 ordering_fields = ('category', 'manufacturer', 'created', 'sold') #默认排序的字段 ordering = ('id',) ...
分页功能
Django REST 中分页设置也能提供两部分功能。一是直接设置默认页面的显示个数,
二是可以利用url自定义显示偏移的页面个数。
PageNumberPagination
LimitOffsetPagination
具体的代码设置如下:
1.在settings中设置全局的分页方式:
#增加分页功能,rest框架的设置都在这个字典内 REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.PageNumberPagination', #全局的分页方式,优先级低于具体类的具体分页方式 'PAGE_SIZE':6, }
2.在具体页面设置分页方式:
class ProductListView(generics.ListAPIView): """ 产品列表 """ ... #分页方式是limit,修改值会修改每页显示的条数http://127.0.0.1:8000/computer/product_list/?limit=2&offset=10 偏移是10条数据 pagination_class = LimitOffsetPagination
相关文章推荐
- django--两级联查搜索分页功能
- Django添加全文搜索功能入门篇
- Django添加全文搜索功能入门篇
- Django添加全文搜索功能入门篇
- Django添加全文搜索功能入门篇
- ASP.NET MVC3 实战入门(3)--在分页中添加搜索功能
- vue2.0嵌套路由实现豆瓣电影分页功能(附加豆瓣web-app)
- Datatables实现分页搜索等功能
- 存储过程分页(含带搜索等功能)
- 为Win7资源管理器添加远程搜索功能从网络上搜索相关的信息
- django-pure-pagination分页功能的实现
- django-pure-pagination分页功能的实现
- APP搜索功能详解:搜索种类及应用场景分析
- 在App中添加微信分享功能
- 给你的安卓app添加下拉刷新功能吧!
- 在django中使用自定义标签实现分页功能
- lucene3.6笔记添加搜索功能
- Android中在ActionBar中添加搜索功能
- Django-分页功能(第三方库)
- Django开发个人博客网站——19、通过Django Haystack实现搜索功能(上)