我应该在我的网址中使用pk还是一个独特的slug?

时间:2013-01-30 05:44:07

标签: python django url-routing django-urls

我想为我在django中写的购物车应用编写URLconf。我想知道构建URL的首选方法是什么。

用户可以通过超链接访问URL(他们不应在地址栏中输入URL)。它将指定的项目添加到他们的购物车中。我应该

使用pk作为项目:

http://example.com/add/253

或使用独特的slu ::

http://example.com/add/unique_item_slug

这些方法中的任何一种都具有安全性或性能优势。有什么理由喜欢吗?

3 个答案:

答案 0 :(得分:3)

使用slug的主要原因是SEO(搜索,引擎优化)。争论是这样的 搜索“我很棒的小部件”将返回结果 -

http://example.com/products/my_awesome_widget

高于

http://example.com/products/423

Google喜欢对人类有意义的网址。理想情况下,您希望URL尽可能多地说明页面。请参阅googles SEO starter guide中的“改善网址结构”部分。

由于您将在线销售产品,因此网络浏览者可以轻松地在搜索引擎上找到您的产品。因此,绝对建议使用slu ..

仅仅依赖slug的一个缺点是,您需要将产品名称强制转换为唯一 slug。您可能目前没有对产品名称的唯一约束,因此您可能需要做一些工作来创建slug(通过检查您要创建的slug是否已经存在)。一个常见的解决方案是包括slug和产品ID。

http://example.com/products/my-awesome-widget/243

这样你的slug就不一定是唯一的,但你的url仍然包含产品名称。

答案 1 :(得分:0)

在现代网页开发中,你可以在URL中使用你的pk,这不会有问题。

依靠一个非常宁静的设计,我会建议你:

http://example.com/product/253/add

http://example.com/product/253是您的产品详细视图。

答案 2 :(得分:0)

As Even说,将标题直接放在URL中的重点是SEO。在网址中包含关键字会对搜索引擎结果产生重大影响

除了人们猜测/预测其他人的能力之外,在URL中使用主键并没有任何明显的安全风险。但是你不应该依赖“没人会猜这个”作为安全措施。