在 URL 中“嵌入”页码的最佳方法是什么?

mip*_*adi 5 django url web-applications

我正在使用 Django 开发一个博客应用程序。目前,该 URL/blog/显示博客的首页(前五篇文章)。然后访问者可以浏览或“翻阅”博客条目。这部分映射到/blog/browse/{page}/page当然,其中 是一个整数,指定应该显示博客条目的哪个“页面”。

不过,我突然想到,也许“页码”应该是查询字符串的一个属性(例如,/blog/browse/?page=2),因为浏览页面的内容不是静态的(即,一旦我添加另一篇文章,/blog/browse/2/就会有与添加帖子之前的内容不同)。这似乎是像 Stack Overflow 和 Reddit 这样的网站做事的方式。例如,在 Stack Overflow 上分页问题时,使用“page”属性;同样,Reddit 使用“计数”属性

扩展这一思路,我意识到,我用的是相同的模板来呈现两者的内容/blog//blog/browse/,所以它甚至可能是有意义的只使用一个URL像/blog/?page=2通过博客的内容页面。

有什么建议?有没有一种“标准”的方法来做到这一点,或者至少有一种“最佳实践”的方法来使用?

nez*_*roy 3

我更喜欢使用 GET URL 参数,如 URL?pg=#。它很常见,为用户提供了有关正在发生的事情的标准视觉线索。例如,如果我想为其中一个页面添加书签或创建外部链接,我不假思索地知道我可以删除 pg 参数以指向“最新”首页索引。对于嵌入的#,这并不那么明显......我要忽略该参数吗?我总是必须将其设置为 1 吗?它是完全不同的基本 URL 吗?对我来说,通过 GET 参数进行分页会使 URL 稍微更合理,因为如果省略该参数并且该参数不会影响基本 URL,则存在可接受的默认值。

另外,虽然我无法证明这一点,但它给了我一种温暖模糊的感觉,即谷歌有更好的机会弄清楚该页面内容的性质(即,它是进一步数据的分页索引,并且可能会频繁更新)与嵌入在 URL 中的页面相比,后者更加不透明。

也就是说,我想说这 99% 是个人偏好,我非常怀疑是否存在任何真正的功能差异,因此选择更容易且更适合您当前的做事方式的方式。

编辑:忘记提及我的观点是 Django 特定的...我有一些 Django 应用程序,所以我相对熟悉它们构建 URL 的方式,并且我仍然对这些应用程序使用“pg”GET 参数而不是嵌入直接在 URL 中。