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/ (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |