首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Django:更新从模板发送到视图的数据的最快方法

Django:更新从模板发送到视图的数据的最快方法
EN

Stack Overflow用户
提问于 2018-12-10 23:18:19
回答 1查看 101关注 0票数 0

我正在开发一个数据可视化应用程序,该应用程序将允许用户根据各种标准过滤他所看到的数据。

我希望在Python/Django方面保持尽可能多的逻辑,如下所示:

  1. 数据从Django视图传递到模板。
  2. 在前端,用户通过各种控件过滤数据:下拉、滑块等。
  3. 控件输入被发送回Django视图(通过AJAX请求?),后者返回过滤后的数据并将其发送回模板。

4.模板-可视化-用过滤后的数据更新。

这样做好吗?我担心的是,很多数据都会飞来飞去,而应用程序可能会反应迟钝。

另一个可能更快的想法是在JavaScript中过滤客户端的数据--但是我真的很想利用强大的Python数据咀嚼库。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-11 08:03:28

如果您想使用DRF,那么就使用它吧。很多网站都有过滤功能。我建议你看一下django_filter包。这是有可能整合和DRF。

在客户端过滤数据时,最糟糕的事情是不能使用分页。假设您有需要过滤的500+对象,javascript过滤功能将真正使您的应用程序变慢。

同时,如果您有20-30个对象要过滤,并且这个数字不会增长,那么您可以只使用JS和单个端点:getAll()

常见的方法是设置javascript on_change处理程序并构造GET请求,如下所示(例如来自实际项目):

代码语言:javascript
运行
复制
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方面众所周知的缺陷是在不超时的情况下发出请求,例如用户编写文本和发送的每个keyUP()事件请求。或者他移动滑块和大量的请求--当用户停止时,你将需要发出请求,比如在他选择值之后的300 of。请参阅此问题以供参考。

当然还有一点。您的数据库必须标准化,并有适当的索引。但是,如果需要非常慢的SQL查询,则必须查看这一面。

总结:我会选择瘦js层,并在后端完成大部分工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53715153

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档