小编典典

Django 中的“slug”是什么?

all

当我阅读 Django 代码时,我经常在模型中看到所谓的“slug”。我不太确定这是什么,但我知道它与 URL 有关。这个slug应该如何以及何时使用?


阅读 121

收藏
2022-03-03

共1个答案

小编典典

“slug”是一种生成有效 URL 的方法,通常使用已经获得的数据。例如,slug 使用文章的标题来生成
URL。我建议通过给定标题(或另一条数据)的函数来生成 slug,而不是手动设置它。

一个例子:

<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>

现在让我们假设我们有一个 Django 模型,例如:

class Article(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField(max_length=1000)
    slug = models.SlugField(max_length=40)

您将如何使用 URL 和有意义的名称引用此对象?例如,您可以使用 Article.id,因此 URL 如下所示:

www.example.com/article/23

或者,您可能希望像这样引用标题:

www.example.com/article/The 46 Year Old Virgin

由于空格在 URL 中无效,因此必须将它们替换为%20,这会导致:

www.example.com/article/The%2046%20Year%20Old%20Virgin

这两种尝试都没有产生非常有意义、易于阅读的 URL。这个更好:

www.example.com/article/the-46-year-old-virgin

在此示例中,the-46-year-old-virgin是一个 slug:它是通过将所有字母向下大小写并用连字符替换空格从标题创建的-

另请参阅此网页的 URL 以获取另一个示例。

2022-03-03