0

要将对象的数据 POST 到服务器,必须提供对象的 ID 以进行查找。在哪里包含 ID 并将其发送到服务器一直困扰着我。我想到了三个选项:

  1. 将 ID 作为 URL 的一部分包含在内
  2. 将 ID 作为 POST 数据的一部分包含在内
  3. 将 ID 放入查询字符串中(我不确定执行 POST 时是否允许查询字符串)

我使用 python/django 作为我的服务器端。

有人请评论我应该选择哪一个以及为什么。谢谢。

4

1 回答 1

1

在大多数情况下,我会通过 URL 来完成,特别是如果您正在创建一个视图来显示一个对象。此外,我会使用 slug(如果有的话)而不是 ID,因为它在 Google SERP 中看起来更好,它在语义上更有意义,并且对用户来说更具可读性。

请记住,您可以使用get_absolute_url(){% url ... %}标签和reverse()函数轻松地反转对象的 url。如果您使用查询字符串或帖子来显示您的对象,您将无法利用这些。

关于查询字符串/参数;我通常遵循使用我的 URL 构造查询集的规则,但使用参数对其进行过滤。即,如果我想查看所有带有某些标签的帖子,我会通过 URL 获取主查询集/posts/tagged/some_tag,然后在必要时使用参数向下钻取;/posts/tagged/some_tag?rating=2

关于 POST 数据;这应该仅在您呈现表单以编辑对象时才真正适用。我仍然会使用 URL 来查找和显示表单(即/posts/my-post-slug/edit/),我会使用参数来控制任何选项或功能(即/posts/my-post/slug/edit/?highlight_required_fields=true),但表单的所有字段都将通过 POST 提交

于 2012-08-07T22:34:25.747 回答