Una "babosa" es una forma de generar una URL válida, generalmente utilizando datos ya obtenidos. Por ejemplo, una babosa usa el título de un artículo para generar una URL. Aconsejo generar el slug mediante una función, dado el título (u otro dato), en lugar de configurarlo manualmente.
Un ejemplo:
<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>
Ahora imaginemos que tenemos un modelo de Django como:
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(max_length=1000)
slug = models.SlugField(max_length=40)
¿Cómo haría referencia a este objeto con una URL y con un nombre significativo? Por ejemplo, podría usar Article.id para que la URL se vea así:
www.example.com/article/23
O bien, puede hacer referencia al título de esta manera:
www.example.com/article/The 46 Year Old Virgin
Como los espacios no son válidos en las URL, deben reemplazarse por %20
, lo que da como resultado:
www.example.com/article/The%2046%20Year%20Old%20Virgin
Ambos intentos no están dando como resultado una URL muy significativa y fácil de leer. Este es mejor:
www.example.com/article/the-46-year-old-virgin
En este ejemplo, the-46-year-old-virgin
es una babosa: se crea a partir del título al minúsculas todas las letras y reemplazando espacios por guiones -
.
También vea la URL de esta página web para otro ejemplo.
Si puedo proporcionar algún contexto histórico:
El término "babosa" tiene que ver con fundición de metal, plomo, en este caso, a partir del cual se hicieron las fuentes de prensa. Luego, cada papel tenía su fábrica de fuentes regularmente fundida y refundida en moldes nuevos, ya que después de muchas impresiones se desgastaron. Los aprendices como yo comenzaron su carrera allí, y llegaron a la cima (ya no más).
Los tipos de letra tenían que componer el texto de un artículo de manera retrasada con los personajes principales apilados de una manera inteligente. Entonces, al momento de la impresión, las letras estarían directamente en el papel. Todos los tipos de letra podían leer el periódico reflejado tan rápido como el impreso. Por lo tanto, las babosas (como los caracoles) y las historias lentas (las últimas que se arreglaron) eran muchas en el banco esperando, identificadas únicamente por sus letras en el puño, en general, todo el título generalmente más legible. Algunas noticias "candentes" esperaban allí en el banco, para una posible corrección de último minuto (periódico vespertino) antes del último montaje e impresión definitiva.
Django salió de las oficinas del diario Lawrence en Kansas. Donde probablemente persista alguna jerga de impresión. A-django -usiast - & - friendly-old-slug-boy-from-France.
fuente
El término 'babosa' proviene del mundo de la producción de periódicos.
Es un nombre informal dado a una historia durante el proceso de producción. A medida que la historia avanza desde el reportero de ritmo (suponiendo que estos aún existan ) hasta el editor hasta las "imprentas", este es el nombre al que se hace referencia, por ejemplo, "¿Ha solucionado esos errores en el ' La historia de Kate y William ".
Algunos sistemas (como Django) usan la babosa como parte de la URL para ubicar la historia, por ejemplo
www.mysite.com/archives/kate-and-william
.Incluso Stack Overflow en sí mismo hace esto, con el GEB-ish (a) autorreferencial
/programming/427102/what-is-a-slug-in-django/427201#427201
, aunque puede reemplazar la babosa conblahblah
y todavía lo encontrará bien.Incluso puede remontarse antes de eso, ya que los guiones tenían "líneas de babosas" al comienzo de cada escena, lo que básicamente establece el fondo para esa escena (dónde, cuándo, etc.). Es muy similar porque es un resumen o preámbulo de lo que sigue.
En una máquina Linotype, una bala era una pieza de metal de una sola línea que se creó a partir de las formas de letras individuales. Al hacer una sola bala para toda la línea, esto mejoró enormemente en la composición antigua de carácter por carácter.
Aunque lo siguiente es pura conjetura, un significado inicial de babosa era para una moneda falsificada (que de alguna manera tendría que presionarse). Podría imaginar que ese uso se transformara en el término de impresión (ya que la bala tenía que presionarse usando los caracteres originales) y, a partir de ahí, cambiar de la definición de 'pieza de metal' a la definición de 'resumen de la historia'. A partir de ahí, es un paso corto desde la impresión adecuada al mundo en línea.
(a) "Godel Escher, Bach", de un tal Douglas Hofstadter , que (al menos) considero una de las grandes obras intelectuales modernas. También debería ver su otro trabajo, "Metamas temáticas".
fuente
Un campo slug en Django se utiliza para almacenar y generar URL válidas para sus páginas web creadas dinámicamente.
Al igual que la forma en que agregó esta pregunta en Stack Overflow y se generó una página dinámica, y cuando vea en la barra de direcciones, verá el título de su pregunta con "-" en lugar de los espacios. Ese es exactamente el trabajo de un campo de babosas.
fuente
A partir de aquí .
fuente
Es una parte descriptiva de la URL que está ahí para hacerla más descriptiva para los humanos, pero sin que el servidor web la requiera necesariamente. ¿Qué es una "babosa" en Django? el slug es 'in-django-what-is-a-slug', pero el slug no se usa para determinar la página servida (al menos en este sitio)
fuente
Slug es una etiqueta corta amigable con URL para contenido específico. Solo contiene letras, números, guiones bajos o guiones. Las babosas generalmente se guardan con el contenido respectivo y pasan como una cadena de URL.
Slug puede crear usando SlugField
Ex:
Si desea utilizar el título como slug, django tiene una función simple llamada
slugify
Si necesita unicidad, agregue
unique=True
en el campo slug.por ejemplo, del ejemplo anterior:
¿Eres perezoso para hacer el proceso de babosas? no te preocupes, este complemento te ayudará. django-autoslug
fuente
También babosa automática en django-admin. Agregado en ModelAdmin:
Como aquí:
fuente
babosa
Una etiqueta corta para algo, que contiene solo letras, números, guiones bajos o guiones. Generalmente se usan en URL. Por ejemplo, en una URL de entrada de blog típica:
https://www.djangoproject.com/weblog/2008/apr/12/spring/ el último bit (primavera) es la babosa.
fuente