我正在开发一个数据可视化应用程序,该应用程序将允许用户按照各种条件过滤看到的数据。
我想在Python / Django方面保持尽可能多的逻辑,像这样:
4。模板-可视化-已使用过滤后的数据进行更新。
这是一个好方法吗?我担心的是,大量数据将四处飞扬,并且该应用可能无响应。
另一个可能更快的想法是使用JavaScript在客户端过滤数据-但我真的很想利用出色的Python数据处理库。
答案 0 :(得分:0)
如果要使用DRF API,请使用它。许多网站都具有过滤功能。我建议您看一下django_filter
软件包。 possible to integrate是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=1
DRF + django_filters
可以用最少的代码就可以正常工作
参与其中。
众所周知,js方面的pitfail是在不超时的情况下发出请求,例如,用户编写文本并且在每个keyUP()
事件请求发送时发送。或者,他移动滑块并发出许多请求-您需要在用户停止它时发出请求,例如,在他选择值之后300毫秒。请参阅此question以供参考。
当然,还有一点。您的数据库必须规范化并具有正确的索引。但是,如果要使用真正的慢速SQL查询器,则必须看看这一面。
总结:我会选择薄js层并在后端完成大部分工作。