Django 的 slug url 正则匹配

Posted sea-stream

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django 的 slug url 正则匹配相关的知识,希望对你有一定的参考价值。

 

如果按照 .* 去匹配,最后会把 /edit/ 和 /delete/ 也匹配进去。

urlpatterns = [
    #...
    url(r^(?P<slug>.*)/$, post_detail, name=detail),
    url(r^(?P<slug>.*)/edit/$, post_update, name=update),
    url(r^(?P<slug>.*)/delete/$, post_delete),
]

所以使用 [-\\w+] 表示匹配 - 符号(短横线 hyphen),以及所有小写的英文字母。

urlpatterns = [
    #...
    url(r^(?P<slug>[-\\w]+)/$, post_detail, name=detail),
    url(r^(?P<slug>[-\\w]+)/edit/$, post_update, name=update),
    url(r^(?P<slug>[-\\w]+)/delete/$, post_delete),
]

 

 

参考:

https://www.jianshu.com/p/8207b66db9ca

https://www.cnblogs.com/yang-wei/p/9997776.html

 

 

 

以上是关于Django 的 slug url 正则匹配的主要内容,如果未能解决你的问题,请参考以下文章

Django中的Slug Url正则表达式

Django Urls - 具有相同正则表达式的两个视图

Django基于正则表达式匹配URL

django基于正则的url匹配

Django2.0版本 path与Django1.x版本url正则匹配问题

Javascript:匹配 URL 的 slug