我正在开发一个数据可视化应用程序,该应用程序将允许用户根据各种标准过滤他所看到的数据。
我希望在Python/Django方面保持尽可能多的逻辑,如下所示:
4.模板-可视化-用过滤后的数据更新。
这样做好吗?我担心的是,很多数据都会飞来飞去,而应用程序可能会反应迟钝。
另一个可能更快的想法是在JavaScript中过滤客户端的数据--但是我真的很想利用强大的Python数据咀嚼库。
发布于 2018-12-11 08:03:28
如果您想使用DRF,那么就使用它吧。很多网站都有过滤功能。我建议你看一下django_filter包。这是有可能整合和DRF。
在客户端过滤数据时,最糟糕的事情是不能使用分页。假设您有需要过滤的500+对象,javascript过滤功能将真正使您的应用程序变慢。
同时,如果您有20-30个对象要过滤,并且这个数字不会增长,那么您可以只使用JS和单个端点:getAll()。
常见的方法是设置javascript on_change处理程序并构造GET请求,如下所示(例如来自实际项目):
https://yourbackend.com/api/product/?status=not_published,published,inactive&search=132&moderation_status=declined,on_moderation,not_ready&ordering=desc&price_max=1000&page=1DRF + django_filters可以很好地工作,只需最少的代码就可以了。
js方面众所周知的缺陷是在不超时的情况下发出请求,例如用户编写文本和发送的每个keyUP()事件请求。或者他移动滑块和大量的请求--当用户停止时,你将需要发出请求,比如在他选择值之后的300 of。请参阅此问题以供参考。
当然还有一点。您的数据库必须标准化,并有适当的索引。但是,如果需要非常慢的SQL查询,则必须查看这一面。
总结:我会选择瘦js层,并在后端完成大部分工作。
https://stackoverflow.com/questions/53715153
复制相似问题