我在一个使用DRF的简单Django项目上工作,遇到了一个小问题。我想在我的API端点上添加过滤和搜索,但我不知道哪种方式更好:
1.为过滤和搜索逻辑制作自定义过滤器后端。
1.使用Django-Filter包完成此任务。
下面是我的部分代码:
from django.db import models
from rest_framework import viewsets, filters
class MyModel(models.Model):
title = models.CharField(max_length=255)
description = models.TextField()
created_at = models.DateTimeField(auto_now_add=True)
class MyModelViewSet(viewsets.ModelViewSet):
queryset = MyModel.objects.all()
serializer_class = MyModelSerializer
filter_backends = [filters.SearchFilter]
search_fields = ['title', 'description']
我只是想知道,哪种方法更好的性能,易于维护,并遵循最佳实践?你能告诉我这两种方法的优点和缺点以及我可能遇到的任何问题吗?例如,如果我做自定义过滤器后端,如何使它好?如果我选择Django-Filter,是否有问题或限制我应该知道?
我非常感谢任何帮助和建议!
1条答案
按热度按时间gojuced71#
这取决于你的情况。大多数时候我会使用维护的包。这样,如果有bug或更新,包将在需要时更新。当你需要高度特定的过滤时,大多数时候写自己的更好。
为了提高性能,大多数时候你应该使用容易和快速实现的方法。当你的应用程序增长时,你会自动看到哪些部分慢了,你可以具体地修复这些部分。这样你就可以保持项目的势头。黄金法则是开发速度和可维护性应该优先于性能。只有当性能成为问题时,你才应该更新那部分。