我想为我在django中写的购物车应用编写URLconf。我想知道构建URL的首选方法是什么。
用户可以通过超链接访问URL(他们不应在地址栏中输入URL)。它将指定的项目添加到他们的购物车中。我应该
使用pk作为项目:
http://example.com/add/253
或使用独特的slu ::
http://example.com/add/unique_item_slug
这些方法中的任何一种都具有安全性或性能优势。有什么理由喜欢吗?
答案 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中使用主键并没有任何明显的安全风险。但是你不应该依赖“没人会猜这个”作为安全措施。