当我阅读Django代码时,我经常在模型中看到所谓的"slug".我不太确定这是什么,但我知道这与URL有关.这个鼻涕虫什么时候怎么用?
(我已经阅读了它在this glossary中的定义.)
当我阅读Django代码时,我经常在模型中看到所谓的"slug".我不太确定这是什么,但我知道这与URL有关.这个鼻涕虫什么时候怎么用?
(我已经阅读了它在this glossary中的定义.)
"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和有意义的名称引用此对象?例如,你可以使用冠词.所以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
这两种try 都没有产生非常有意义、易于阅读的URL.这样更好:
www.example.com/article/the-46-year-old-virgin
在本例中,the-46-year-old-virgin
是一个slug:它是通过将所有字母下框,并用连字符-
替换空格,从标题创建的.
另一个例子是这个网页的URL.