程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了分页Django表单POST请求的结果大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决分页Django表单POST请求的结果?

开发过程中遇到分页Django表单POST请求的结果的问题如何解决?下面主要结合日常开发的经验,给出你关于分页Django表单POST请求的结果的解决方法建议,希望对你解决分页Django表单POST请求的结果有所启发或帮助;

如果要在以后的请求中访问存储数据,则必须将其存储在某个位置。Django提供了几种存档方法:

1)你可以使用会话来存储查询:每个访问你的站点的访问者都会得到一个空的会话对象,并且你可以在该对象内存储所需的任何内容,就像字典一样。缺点:单个访客不能同时进行多个分页搜索。

2)使用COokie:如果你设置了存储在客户端的cookie,则浏览器会将cookie的数据附加到你可以访问它的每个请求中。cookies对服务器更友好,因为你不需要服务器上的会话管理器,但是cookie中存储的数据对客户端可见(并可编辑)。缺点:和以前一样。

3)使用隐藏字段:你可以在搜索结果页面上添加包含一些隐藏字段的表单,并将查询存储在其中。然后,每当你提交表单时,客户端都会重新发送查询。缺点:你必须使用带有提交按钮的表单来在页面上进行分页(简单链接无法使用)。

4)创建包含查询的链接:除了使用POST,还可以使用GET。例如,你可能有一个类似的链接"/search/Hello+world/?order=Votes"和一个“分页的链接”,如"/search/Hello+world/2/?order-Votes"。然后可以轻松地从URL中检索查询。缺点:你可以通过GET发送的最大数据量是有限的(但是对于简单的搜索来说这不是问题)。

5)组合使用:你可能希望将所有数据存储在会话或数据库中,并通过生成的密钥(可将其放入URL)访问它们。然后,URL可能看起来像是“ /search/029af239ccd23/2"(对于第二页),你可以使用该密钥访问之前存储的大量数据。这消除了解决方案1和解决方案4的缺点。工作:)

6)使用AJAX:使用AJAX,你可以将数据存储在客户端的一些Js变量内,然后可以将其传递给其他请求。而且由于AJAX只会更新你的结果列表,因此变量不会丢失。

解决方法

我正在使用Django Forms通过POST进行过滤/多面搜索,我想使用Django的paginator类来组织结果。在各个页面之间传递客户端时,如何保留原始请求?换句话说,当我将另一个页面的GET请求传递回我的视图时,似乎丢失了POST数据。我已经看到一些使用AJAX仅刷新页面结果块的建议,但是我想知道是否存在Django本地机制来执行此操作。

大佬总结

以上是大佬教程为你收集整理的分页Django表单POST请求的结果全部内容,希望文章能够帮你解决分页Django表单POST请求的结果所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。