用于在Django中处理第三方API查找的表单架构?

时间:2018-03-18 14:25:18

标签: django

我有一个Django网站,基本上是一堆社区,每个社区一页。

主页上有一个表单,用户可以在其中输入邮政编码,然后该网站会将其转发到邻居的正确页面。

来自zipcode< - >邻居ID的查询由第三方API提供。

在主页上使用第三方查找实现表单的Django-ish方法最多的是什么?我考虑过的一些选项:

  1. 将表单设置为POST返回主页,捕获POST请求到主页,使用requests查找API响应,然后HttpResponse将用户重定向到正确的页面。
  2. 将表单设置为POST到另一个URL,并具有完全独立的视图来处理查找和重定向。
  3. 我无法使用POST,而是使用GET到zipcode/<zipcode>,然后再从那里转发。
  4. 这些都是优选的吗?

    当然,我还可以在主页上添加JavaScript方法来捕获表单输入,调用第三方API,解析响应以及转发用户。这样做的缺点显然是它需要用户使用JavaScript。

1 个答案:

答案 0 :(得分:0)

我会选择选项3。

正如Daniel Roseman所说,GET是更合适的方法,因为这是一种幂等操作,不会改变服务器上的任何状态。该视图可以执行查找(使用requests,就像您所说的那样),然后执行HTTP重定向到相应的页面。