2017-11-01 3 views
0

Wenn ich ein video, in den 02.13 Sekunden zu sehen, gibt es eine urlpatterns:Was ist der Unterschied, wenn `` `` zu regulären Ausdrücken hinzugefügt wird?

urlpatterns = [ 
    url(r'^$', PostListAPIView.as_view(), name='list'), 
    url(r'^(?P<pk>\d+)/$', PostDetailAPIView.as_view(), name='detail'), 
    url(r'^(?P<slug>[\w+])/edit/$', PostUpdateAPIView.as_view(), name='update'), 
    url(r'^(?P<slug>[\w+])/delete/$', PostDeleteAPIView.as_view(), name='delete'), 
] 

Wir wissen, dass wir \d+ verwenden können, um die Zahlen zu entsprechen, verwenden \w+ Zeichen zu finden, die Anzahl und _.

Aber warum in der \w+ mit [] wrap sein? kann es nicht wickeln?

Und übrigens, verwenden viele Django-Modell ein Slug-Feld, warum verwenden Sie es? und das Slug-Feld hat welche Funktion? Was ist die tiefe Bedeutung von Slug?

+1

Slugs helfen, Ihre URLs menschlich lesbar zu halten: statt einer ID-basierten ''example.com/blog/34'' könnten Sie' 'example.com haben/blog/my-day-out'' – schwobaseggl

+0

@schwobaseggl Also sollte die Schnecke einzigartig sein, okay? – 244boy

Antwort

0

[\w+] tatsächlich entspricht entweder ein Wort Zeichen \w oder +, das Pluszeichen. Werfen Sie einen Blick auf die Erklärung Registerkarte dieser Regex hier: https://regex101.com/r/eIctY0/1

Verwandte Themen