Un "slug" est un moyen de générer une URL valide, en utilisant généralement les données déjà obtenues. Par exemple, un slug utilise le titre d'un article pour générer une URL. Je conseille de générer le slug au moyen d'une fonction, compte tenu du titre (ou d'une autre donnée), plutôt que de le définir manuellement.
Un exemple:
<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>
Imaginons maintenant que nous ayons un modèle Django tel que:
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(max_length=1000)
slug = models.SlugField(max_length=40)
Comment référenceriez-vous cet objet avec une URL et un nom significatif? Vous pouvez par exemple utiliser Article.id pour que l'URL ressemble à ceci:
www.example.com/article/23
Ou, vous voudrez peut-être référencer le titre comme ceci:
www.example.com/article/The 46 Year Old Virgin
Étant donné que les espaces ne sont pas valides dans les URL, ils doivent être remplacés par %20
, ce qui se traduit par:
www.example.com/article/The%2046%20Year%20Old%20Virgin
Les deux tentatives n'aboutissent pas à une URL très significative et facile à lire. C'est mieux:
www.example.com/article/the-46-year-old-virgin
Dans cet exemple, the-46-year-old-virgin
est un slug: il est créé à partir du titre en mettant en minuscule toutes les lettres et en remplaçant les espaces par des tirets -
.
Voir également l'URL de cette page Web pour un autre exemple.
Si je peux fournir un contexte historique:
Le terme «limace» a trait à la coulée de métal - le plomb, dans ce cas - à partir duquel les polices de presse ont été fabriquées. Chaque papier avait ensuite sa fabrique de polices régulièrement refondue et refondue dans des moules frais, car après de nombreuses impressions, elles étaient usées. Des apprentis comme moi ont commencé leur carrière là-bas et sont allés jusqu'au sommet (plus maintenant).
Les typographes devaient composer le texte d'un article dans le sens inverse avec des personnages principaux empilés de manière judicieuse. Ainsi, au moment de l'impression, les lettres seraient directement sur le papier. Tous les typographes pouvaient lire le journal en miroir aussi vite que celui imprimé. Par conséquent, les limaces, (comme les escargots) ainsi que les histoires lentes (les dernières à être fixées) étaient nombreuses sur le banc d'attente, uniquement identifiées par leurs premières lettres, principalement le titre entier généralement plus lisible. Quelques nouvelles «chaudes» attendaient là sur le banc, pour une éventuelle correction de dernière minute, (Papier du soir) avant le dernier montage et l'impression définitive.
Django est sorti des bureaux du journal Lawrence au Kansas. Là où un certain jargon d'impression persiste probablement. Un passionné de django - & - sympathique-vieux-limace-garçon-de-France.
la source
Le terme «limace» vient du monde de la production de journaux.
C'est un nom informel donné à une histoire pendant le processus de production. Alors que l'histoire se fraye un chemin depuis le beat reporter (en supposant qu'ils existent encore?) Jusqu'à l' éditeur jusqu'aux "presses à imprimer", c'est le nom auquel il est référencé, par exemple, "Avez-vous corrigé ces erreurs dans le ' histoire de kate-and-william? ".
Certains systèmes (tels que Django) utilisent le slug dans le cadre de l'URL pour localiser l'histoire, un exemple étant
www.mysite.com/archives/kate-and-william
.Même Stack Overflow le fait lui-même, avec l' auto-référentiel GEB-ish (a)
/programming/427102/what-is-a-slug-in-django/427201#427201
, bien que vous puissiez remplacer le slug avecblahblah
et il le trouvera toujours correct.Cela peut même dater plus tôt que cela, car les scénarios avaient des "lignes de slug" au début de chaque scène, ce qui définit essentiellement l'arrière-plan de cette scène (où, quand, etc.). C'est très similaire en ce sens que c'est un précis ou un préambule de ce qui suit.
Sur une machine Linotype, une limace était un morceau de métal d'une seule ligne qui a été créé à partir des formes de lettres individuelles. En créant un seul slug pour toute la ligne, cela s'est considérablement amélioré par rapport à l'ancienne composition par caractère.
Bien que ce qui suit soit une pure conjecture, une des premières significations de la limace était pour une pièce de monnaie contrefaite (qui devrait être appuyée d'une manière ou d'une autre). Je pourrais envisager que cet usage soit transformé en terme d'impression (puisque le limace devait être pressé en utilisant les caractères originaux) et à partir de là, passant de la définition de «morceau de métal» à la définition de «résumé de l'histoire». À partir de là, il suffit de passer d'une impression correcte au monde en ligne.
(a) "Godel Escher, Bach", par un Douglas Hofstadter , que je considère (au moins) comme l'une des grandes œuvres intellectuelles modernes. Vous devriez également consulter son autre travail, "Thèmes métamagiques".
la source
Un champ de slug dans Django est utilisé pour stocker et générer des URL valides pour vos pages Web créées dynamiquement.
Tout comme la façon dont vous avez ajouté cette question sur Stack Overflow et une page dynamique a été générée et lorsque vous voyez dans la barre d'adresse, vous verrez le titre de votre question avec "-" à la place des espaces. C'est exactement le travail d'un champ de limaces.
la source
D' ici .
la source
C'est une partie descriptive de l'URL qui est là pour la rendre plus descriptive, mais sans nécessairement être requise par le serveur Web - dans Qu'est-ce qu'un "slug" dans Django? le slug est 'in-django-what-is-a-slug', mais le slug n'est pas utilisé pour déterminer la page servie (sur ce site au moins)
la source
Slug est une étiquette courte adaptée aux URL pour un contenu spécifique. Il ne contient que des lettres, des chiffres, des tirets bas ou des tirets. Les limaces sont généralement enregistrées avec le contenu respectif et elles sont transmises sous forme de chaîne URL.
Slug peut créer en utilisant SlugField
Ex:
Si vous voulez utiliser le titre comme slug, django a une fonction simple appelée
slugify
S'il a besoin d'unicité, ajoutez
unique=True
dans le champ slug.par exemple, de l'exemple précédent:
Êtes-vous paresseux pour faire un processus de limace? ne vous inquiétez pas, ce plugin vous aidera. django-autoslug
la source
Également slug automatique sur django-admin. Ajouté chez ModelAdmin:
Comme ici:
la source
limace
Une étiquette courte pour quelque chose, contenant uniquement des lettres, des chiffres, des traits de soulignement ou des tirets. Ils sont généralement utilisés dans les URL. Par exemple, dans une URL d'entrée de blog typique:
https://www.djangoproject.com/weblog/2008/apr/12/spring/ le dernier bit (printemps) est la limace.
la source