我应该在网址中使用pk还是唯一的代码段?

问题描述 投票:1回答:3

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

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

使用项目的pk:

http://example.com/add/253

或使用唯一的子弹:

http://example.com/add/unique_item_slug

这些方法是否都具有安全性或性能优势。有什么理由更喜欢吗?

python django url-routing django-urls
3个回答
3
投票

使用子弹的主要原因是SEO(搜索,引擎优化)。论据是搜索“我的超棒小部件”将返回以下结果-

http://example.com/products/my_awesome_widget

高于

http://example.com/products/423

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

由于您将要在线销售商品,因此,网络冲浪者必须在搜索引擎上轻松找到您的产品,这一点非常重要。因此,绝对建议使用。

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

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

这样,您的子弹不必是唯一的,但您的URL仍包含产品名称。


0
投票

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

依靠非常安静的设计,我向您推荐:

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

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


0
投票

正如Ewen所说,直接在URL中放置标题就是SEO。 URL中包含关键字会对搜索引擎结果产生重大影响

使用URL中的主键确实没有任何重大的安全风险,除了人们能够猜测/预测其他密钥之外。但是你不应该依赖

没人会猜到这个

仍然是一种安全措施。

© www.soinside.com 2019 - 2024. All rights reserved.