【问题标题】:Architecture for form to handle a third-party API lookup in Django?在 Django 中处理第三方 API 查找的表单架构?
【发布时间】:2018-03-18 14:25:18
【问题描述】:

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

主页上有一个表格,用户可以在其中输入邮政编码,网站会将他们转发到他们所在社区的正确页面。

从邮政编码查找社区 ID 由第三方 API 提供。

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

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

这些中的任何一个都更可取吗?

当然,我也可以在首页添加一个JavaScript方法来获取表单输入,调用第三方API,解析响应,转发用户。这样做的缺点显然是它需要用户拥有 JavaScript。

【问题讨论】:

  • 一般来说,查找应该是 GET。 POST 应保留用于修改数据库中数据的操作。

标签: django


【解决方案1】:

我会选择选项 3。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-14
    • 2020-08-11
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-28
    相关资源
    最近更新 更多