微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

django中slug是什么?有什么用?可以应用于什么地方?

slug是一个报纸术语,slug是一个种短标签,只包含字母,数字,下划线或连字符。通常用于url中,有利于SEO

slug是一种生成有效url的方法,通常用在已经获得的数据。例如:使用文章标题生成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

使用slug,会让网址看起来更加舒服

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

由于slug特殊性,在实际操作中无法保证slug唯一性,建议实际操作应该如下:

www.example.com/article/23/the-40-year-old-virgin

这样在查询中,可以更快查询到网址。

实际开发中,如果想要用title作为slug,django有一个简单的函数叫做slugify

from django.template.defaultfilters import slugify

class Article(models.Model):
    title = models.CharField(max_length=100)

    def slug(self):
        return slugify(self.title)

如果不想自己写slug的步骤,可以使用模块django-autoslug

文档:https://docs.djangoproject.com/en/2.2/ref/models/fields/

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐