Ein "Slug" ist eine Möglichkeit, eine gültige URL zu generieren, wobei im Allgemeinen bereits erhaltene Daten verwendet werden. Beispielsweise verwendet ein Slug den Titel eines Artikels, um eine URL zu generieren. Ich empfehle, den Slug mithilfe einer Funktion zu generieren, die den Titel (oder ein anderes Datenelement) enthält, anstatt ihn manuell festzulegen.
Ein Beispiel:
<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>
Stellen wir uns nun vor, wir hätten ein Django-Modell wie:
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(max_length=1000)
slug = models.SlugField(max_length=40)
Wie würden Sie dieses Objekt mit einer URL und einem aussagekräftigen Namen referenzieren? Sie könnten beispielsweise Article.id verwenden, damit die URL folgendermaßen aussieht:
www.example.com/article/23
Oder Sie möchten den Titel folgendermaßen referenzieren:
www.example.com/article/The 46 Year Old Virgin
Da Leerzeichen in URLs nicht gültig sind, müssen sie durch Folgendes ersetzt werden %20
. Dies führt zu:
www.example.com/article/The%2046%20Year%20Old%20Virgin
Beide Versuche führen nicht zu einer sehr aussagekräftigen, leicht lesbaren URL. Das ist besser:
www.example.com/article/the-46-year-old-virgin
In diesem Beispiel the-46-year-old-virgin
handelt es sich um eine Schnecke: Sie wird aus dem Titel erstellt, indem alle Buchstaben in Großbuchstaben geschrieben und Leerzeichen durch Bindestriche ersetzt werden -
.
Ein weiteres Beispiel finden Sie in der URL dieser Webseite.
Wenn ich einen historischen Kontext angeben darf:
Der Begriff "Schnecke" hat mit dem Gießen von Metall - in diesem Fall Blei - zu tun, aus dem die Druckschriften hergestellt wurden. Jedes Papier hatte dann seine Schriftfabrik regelmäßig neu geschmolzen und in frischen Formen neu gegossen, da sie nach vielen Drucken abgenutzt waren. Auszubildende wie ich haben dort ihre Karriere begonnen und sind ganz nach oben gegangen (nicht mehr).
Typographen mussten den Text eines Artikels rückwärts verfassen, wobei die Hauptfiguren weise gestapelt waren. Zum Zeitpunkt des Drucks befinden sich die Buchstaben also direkt auf dem Papier. Alle Typografien konnten die gespiegelte Zeitung genauso schnell lesen wie die gedruckte. Daher warteten die Schnecken (wie Schnecken) und auch die langsamen Geschichten (die letzten, die repariert wurden) viele auf der Bank, die nur durch ihre Faustbuchstaben identifiziert wurden, wobei der gesamte Titel im Allgemeinen besser lesbar war. Dort warteten einige "heiße" Nachrichten auf der Bank auf eine mögliche Last-Minute-Korrektur (Abendpapier) vor der letzten Montage und dem endgültigen Druck.
Django kam aus den Büros des Lawrence-Journals in Kansas. Wo wahrscheinlich noch ein Druckjargon verweilt. A-Django-Enthusiast - & - freundlicher alter Schneckenjunge aus Frankreich.
quelle
Der Begriff "Schnecke" stammt aus der Welt der Zeitungsproduktion.
Es ist ein informeller Name, der einer Geschichte während des Produktionsprozesses gegeben wird. Während sich die Geschichte vom Beat-Reporter (vorausgesetzt, diese existieren überhaupt noch?) Über den Editor bis zu den "Druckmaschinen" schlängelt , ist dies der Name, auf den sie verweist, z. B. "Haben Sie diese Fehler in" behoben? Kate-and-William-Geschichte? ".
Einige Systeme (wie Django) verwenden den Slug als Teil der URL, um die Story zu lokalisieren. Ein Beispiel hierfür ist
www.mysite.com/archives/kate-and-william
.Sogar Stack Overflow selbst tut dies mit dem GEB-ish (a) selbstreferenziell
/programming/427102/what-is-a-slug-in-django/427201#427201
, obwohl Sie den Slug durch ersetzen könnenblahblah
und es immer noch in Ordnung ist.Es kann sogar früher zurückgehen, da Drehbücher zu Beginn jeder Szene "Slug Lines" hatten, was im Grunde den Hintergrund für diese Szene festlegt (wo, wann und so weiter). Es ist insofern sehr ähnlich, als es eine Präzision oder Präambel dessen ist, was folgt.
Bei einer Linotype-Maschine war eine Schnecke ein einzeiliges Metallstück, das aus den einzelnen Buchstabenformen hergestellt wurde. Durch das Erstellen einer einzelnen Schnecke für die gesamte Linie wurde das alte Compositing von Zeichen zu Zeichen erheblich verbessert.
Obwohl das Folgende eine reine Vermutung ist, war eine frühe Bedeutung von Schnecke für eine gefälschte Münze (die irgendwie gedrückt werden müsste). Ich könnte mir vorstellen, dass diese Verwendung in den Druckbegriff umgewandelt wird (da der Butzen mit den Originalzeichen gedrückt werden musste) und von dort von der Definition des Stücks Metall zur Definition der Zusammenfassung der Geschichte wechselt. Von dort ist es ein kurzer Schritt vom richtigen Drucken zur Online-Welt.
(a) "Godel Escher, Bach" von einem Douglas Hofstadter , den ich (zumindest) als eines der großen modernen intellektuellen Werke betrachte. Sie sollten sich auch seine andere Arbeit "Metamagical Themas" ansehen.
quelle
Ein Slug-Feld in Django wird zum Speichern und Generieren gültiger URLs für Ihre dynamisch erstellten Webseiten verwendet.
Genau wie Sie diese Frage bei Stack Overflow hinzugefügt haben und eine dynamische Seite generiert wurde und wenn Sie in der Adressleiste sehen, sehen Sie Ihren Fragentitel mit "-" anstelle der Leerzeichen. Das ist genau die Aufgabe eines Schneckenfeldes.
quelle
Von hier aus .
quelle
Es ist ein beschreibender Teil der URL, der dazu dient, die Beschreibung des Menschen menschlicher zu gestalten, ohne jedoch unbedingt vom Webserver benötigt zu werden - in Was ist ein "Slug" in Django? Der Slug ist 'in-django-what-is-a-slug', aber der Slug wird nicht verwendet, um die Seite zu bestimmen, die bedient wird (zumindest auf dieser Site).
quelle
Slug ist eine URL-freundliche Kurzbezeichnung für bestimmte Inhalte. Es enthält nur Buchstaben, Zahlen, Unterstriche oder Bindestriche. Slugs werden normalerweise mit dem jeweiligen Inhalt gespeichert und als URL-Zeichenfolge übergeben.
Slug kann mit SlugField erstellt werden
Ex:
Wenn Sie den Titel als Slug verwenden möchten, hat django eine einfache Funktion namens
slugify
Wenn es Eindeutigkeit benötigt, fügen Sie
unique=True
in Schneckenfeld hinzu.Zum Beispiel aus dem vorherigen Beispiel:
Sind Sie faul, Schneckenprozess zu machen? Keine Sorge, dieses Plugin wird dir helfen. Django-Autoslug
quelle
Auch Auto Slug bei Django-Admin. Hinzugefügt bei ModelAdmin:
Wie hier:
quelle
Schnecke
Ein kurzes Etikett für etwas, das nur Buchstaben, Zahlen, Unterstriche oder Bindestriche enthält. Sie werden im Allgemeinen in URLs verwendet. Beispiel: In einer typischen Blogeintrags-URL:
https://www.djangoproject.com/weblog/2008/apr/12/spring/ Das letzte Bit (Frühling) ist die Schnecke.
quelle