当前位置: 首页 > 面试题库 >

分页Django表单POST请求的结果

宣原
2023-03-14
问题内容

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


问题答案:

如果要在以后的请求中访问存储数据,则必须将其存储在某个位置。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只会更新你的结果列表,因此变量不会丢失。



 类似资料:
  • 问题内容: 我正在尝试通过带有POST请求的照片上传 根据自述文件,我应该能够做到这一点 问题是,这不起作用。我收到测试服务器的回复,说它转储了0个post变量。 我已经确认该HTML小页面服务器处于工作状态 所以问题是,请求模块在做什么?有没有更好的方法来发送节点? 问题答案: 经过更多研究后,我决定使用。这使得分段上传非常容易。

  • 我正在向本地运行的Django服务器发出post请求。我正在将请求发送到http://127.0.0.1/login/。这是风景 我现在只有,这样我就不用创建视图来获取csrf令牌了。当我发送POST请求时,它工作并打印出我随请求发送的json,但它也打印出这个错误。 这让我感到困惑的原因是我没有引用任何名为“bytes”的对象或名为“get”的属性。有人知道这是怎么回事吗?

  • 问题内容: 我正在尝试将数据从表单发送到php文件,以便可以将其存储在数据库中,但是无法正常工作… 表单的代码与php文件不在同一服务器上,因为表单将在移动应用程序上。 html php文件 谢谢!!! 问题答案: 在PHP文件的开头添加以下内容: 有关跨域策略的更多信息,请参见此处。

  • axios请求点击控制器上的url,但将空值设置到POJO类中,当我使用chrome中的开发人员工具时,有效负载包含数据。我做错了什么? Axios POST请求: 浏览器响应: 过帐多部分/表单数据时出错。Content-Type标头缺少边界 谁能解释一下如何设置边界或者我如何使用Axios发送表单数据。

  • 我对Android系统是新手。我想上传图像作为表单数据使用改型后的方法。我正在使用 这是我的请求体。

  • 我正在使用请求库编写Web服务客户端。我正在获取包含文件和文本json的多部分/表单数据。我不知道如何解析它。是否有合适的库来解析python中的多部分/表单数据格式,或者我应该自己编写解析器? 我的代码: b'\r\n--c00750d1-8ce4-4d29-8390-b50bf02a92cc\r\nContent-Displace: form-data; name="playback Hash