当我阅读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.

Python相关问答推荐

两极:如何分割一个大 pyramid 并并行保存每个

有没有方法可以修复删除了换码字符的无效的SON记录?

机器人与Pyton Minecraft服务器状态不和

无法使用python.h文件; Python嵌入错误

Pandas 在时间序列中设定频率

从DataFrame.apply创建DataFrame

jit JAX函数中的迭代器

使用scipy. optimate.least_squares()用可变数量的参数匹配两条曲线

Locust请求中的Python和参数

三个给定的坐标可以是矩形的点吗

Python daskValue错误:无法识别的区块管理器dask -必须是以下之一:[]

将整组数组拆分为最小值与最大值之和的子数组

为什么tkinter框架没有被隐藏?

标题:如何在Python中使用嵌套饼图可视化分层数据?

Telethon加入私有频道

Python Pandas获取层次路径直到顶层管理

Polars asof在下一个可用日期加入

从Windows Python脚本在WSL上运行Linux应用程序

在Python中调用变量(特别是Tkinter)

重置PD帧中的值