Что такое "слизняк" в Джанго?
когда я читаю код Django, я часто вижу в моделях то, что называется "slug". Я не совсем уверен, что это такое, но я знаю, что это имеет какое-то отношение к URL. Как и когда этот слизень-вещь должна использоваться?
(Я прочитал его определение в в этом глоссарии.)
9 ответов:
это способ генерации допустимого 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
это не решает наш значимый URL. Разве это не было бы лучше:
www.example.com/article/the-46-year-old-virgin
это пуля.
the-46-year-old-virgin
. Все буквы сокращены, а пробелы заменены дефисами-
. См. URL-адрес эта самая веб-страница для примера!
Если я могу предоставить некоторый исторический контекст :
термин "слизень" имеет отношение к разливке металла-свинца, в данном случае-из которого были изготовлены печатные шрифты. Тогда в каждой газете была своя фабрика шрифты регулярно переплавить и переработать в свежие формы, так как после многих принтами, они стали изношенными. Такие ученики, как я, начинали свою карьеру там, и прошли весь путь до вершины (больше нет).
типографы должны были составить текст статьи в обратном порядке манера с ведущими персонажами складывается по-мудрому. Таким образом, во время печати буквы будут прямо на бумаге. Все типографы могли читать газету в зеркальном отражении так же быстро, как и печатную. Поэтому слизни, (как улитки) также медленные истории (последние, которые будут исправлены) были многими на скамейке ожидания, исключительно идентифицированные их кулаками букв, в основном весь заголовок обычно более читаемый. Некоторые "горячие" новости ждали там на скамейке, для возможной коррекции в последнюю минуту, (вечерняя газета) перед тем, как последняя сборка и окончательная печать.
Джанго вышел из офиса журнала Лоуренса в Канзасе. Где, вероятно, еще сохранился какой-то печатный жаргон. а-Джанго-энтузиастов-&-дружелюбный-старый-слаг-мальчик-с-Франции.
как немного истории, термин "слизняк" происходит из мира редактирования газет.
это неофициальное название, данное истории во время производственного процесса. Поскольку история проматывает свой мучительный путь от репортера beat до редактора через "печатные станки", это имя, на которое он ссылается, например: "вы исправили эти ошибки в истории" Россия-режет-Европа-газ"?".
Django использует его в качестве части URL-адреса, чтобы найти историю, например,
www.mysite.com/archives/russia-cuts-europe-gas
.
с здесь.
"слизняк" - это газетный термин, но какой это означает, что вот последний бит URL-АДРЕС. Например, сообщение с название, "немного о Джанго" бы стань, " бит-о-Джанго" автоматически (можно, конечно, легко изменить его, если вам не нравится автоматически сгенерированный слизень).
Slug-это газетный термин. Слизняк-это короткая метка для чего-то, содержащая только буквы, цифры, подчеркивания или дефисы.Они обычно используются в URL-адресах.(как в Джанго документы)
поле slug в Django используется для хранения и генерации действительных URLs для динамически создаваемых веб-страниц.
Так же, как вы добавили этот вопрос на переполнение стека и динамическая страница генерируется, и когда вы видите в адресной строке вы увидите название вашего вопроса с "- "вместо пробелов. Это точно работа поля слизней.
название введенное вами было что-то вроде этого - > что такое "slug" в Django?
&
при хранении его в слизень, подал результаты его в what-is-a-slug-in-django (см. URL этой страницы)
это описательная часть URL, которая там, чтобы сделать его более человеческим описательным, но не обязательно требуется веб-сервером-in что такое "слизень" в Django? пуля-это "in-django-what-is-a-slug", но пуля не используется для определения страница (по крайней мере, на этом сайте)
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
также auto slug в django-admin. Добавлено в ModelAdmin:
prepopulated_fields = {'slug': ('title', )}
а вот:
class ArticleAdmin(admin.ModelAdmin): list_display = ('title', 'slug') search_fields = ('content', ) prepopulated_fields = {'slug': ('title', )}
slug
короткая метка для чего-то, содержащая только буквы, цифры, подчеркивания или дефисы. Они обычно используются в URL-адресах. Например, в типичной записи блога URL:
https://www.djangoproject.com/weblog/2008/apr/12/spring/ последний бит (пружина) - это слизняк.