加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 17:14:22 所属栏目:大数据 来源:网络整理
导读:slug是一个报纸术语,slug是一个种短标签,只包含字母,数字,下划线或连字符。通常用于url中,有利于SEO slug是一种生成有效url的方法,通常用在已经获得的数据。例如:使用文章标题生成URL。像这种建议是用函数给定标题或者其他数据生成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/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读