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.