Python-在Django中,“slug”是什么?

发布于 2021-02-02 23:12:27

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

关注者
0
被浏览
90
1 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

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

    一个例子:

    <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
    

    由于网址中的空格无效,因此必须将其替换为%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是一个子弹:它是通过将所有字母缩进小写并用连字符替换空格来从标题创建的-。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看