在Django中,“子弹”是什么?

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

(我已经在本词汇表中阅读了其定义。)


#1楼

如果我可以提供一些历史背景:

“弹头”一词与铸造金属(在这种情况下为铅)有关,而印刷字体是由铅制成的。 然后,每张纸的字体工厂都会定期重新熔化,并用新鲜的模具重新铸造,因为经过多次印刷后,它们已经磨损了。 像我这样的学徒从那里开始了他们的职业生涯,并一路攀升到了顶峰(不再有)。

排版者必须以倒排的方式撰写文章文字,并以明智的方式堆叠主角。 因此,在打印时,字母将直接在纸上。 所有的印刷机都能像打印的报纸一样快地阅读报纸。 因此,(如蜗牛)和慢故事(最后要修复的故事)在板凳席上等待着很多,只能通过拳头字母来识别,通常整个标题通常更易读。 一些“热门”新闻在板凳上等待着,可能在最后组装和确定印刷之前进行最后一分钟的更正(晚上用纸)。

Django来自堪萨斯州《劳伦斯》杂志的办公室。 也许还有一些印刷术语仍然存在。 django爱好者和来自法国的友好的老-男孩。


#2楼

也可以在django-admin上自动启动。 在ModelAdmin上添加:

prepopulated_fields = {'slug': ('title', )}

如这里:

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title', 'slug')
    search_fields = ('content', )

    prepopulated_fields = {'slug': ('title', )}

#3楼

Slug是一个报纸术语。 子弹是某事物的简短标签,仅包含字母,数字,下划线或连字符。 它们通常在URL中使用。 (如Django文档)

Django中的Slug字段用于为动态创建的网页存储和生成有效的URL

就像您在Stack Overflow上添加此问题的方式一样,并生成了一个动态页面,当您在地址栏中看到时,您会看到问题标题带有“-”代替空格。 这正是田的工作。

在此处输入图片说明

您输入的标题是这样的->在Django中,“子弹”是什么?

将其存储到slug字段中后,它变成“ what-is-a-slug-in-django”(请参阅​​此页面的URL)


#4楼

Slug是特定内容的URL友好短标签。 它仅包含字母,数字,下划线或连字符。 子弹通常与各自的内容一起保存,并作为URL字符串传递。

Slug可以使用SlugField创建

例如:

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

如果要将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)

如果需要唯一性,则在子域中添加unique=True

例如,从前面的示例中:

class Article(models.Model):
    title = models.CharField(max_length=100)
    slug = models.SlugField(max_length=100, unique=True)

您是否懒于进行处理? 不用担心,此插件将为您提供帮助。 django-autoslug


#5楼

这里

“ Slug”是报纸上的术语,但此处的含义是URL的最后一部分。 例如,标题为“关于Django的一点”的帖子将自动变为“ bit-about-django”(当然,如果您不喜欢自动生成的子弹,则可以轻松地对其进行更改)。


#6楼

它是URL的描述性部分,可以使它更具人工描述性,但不一定是Web服务器所必需的- 在Django什么是“子弹”? slug是“ in-django-what-is-a-slug”,但不使用slug来确定所服务页面 (至少在此站点上)


#7楼

“子弹”是一种通常使用已获得的数据生成有效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

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

另请参见此网页的URL。


#8楼

从历史上看,“子弹”一词来自报纸编辑界。

这是制作过程中故事的非正式名称。 随着故事从曲折的记者到编辑再到“印刷机”的曲折曲折,这就是它所引用的名称,例如,“您是否已修复“俄罗斯剪裁-欧洲天然气”故事中的错误? ?”。

Django使用它作为URL的一部分来查找故事,例如www.mysite.com/archives/russia-cuts-europe-gas


#9楼

sl

某物的简短标签,仅包含字母,数字,下划线或连字符。 它们通常在URL中使用。 例如,在典型的博客条目URL中:

https://www.djangoproject.com/weblog/2008/apr/12/spring/最后一点(弹簧)是弹头。

发布了0 篇原创文章 · 获赞 1 · 访问量 2552

猜你喜欢

转载自blog.csdn.net/asdfgh0077/article/details/103935562
今日推荐