Django 正则表达式捕获空字符或 space 字符

Django regex catching empty or space character

为什么 Django 中 Python 中的以下正则表达式将 '/' 与 views.v 匹配?

urlpatterns = [
    url(r'^$', views.i, name='i'), 
    url(r'^(?P<p>[a-zA-Z]+)/$', views.v, name='v'),
]

所以 domain/a 或 domain/bcde 的 url 匹配 views.v; domain/ 的 url 应该匹配 views.i,但是 / 有一个“NoReverseMatch Reverse for '/' with arguments '()' and keyword arguments '{}' not found”错误。这意味着'/'匹配views.v?

有人知道吗?

错误 Reverse for '/' 表明您的代码中有 {% url '/' %}。这没有意义 - / 已经是 url,所以没有必要反转它。

您应该使用 url 模式的 name 和 url 标签,例如:

{% url 'i' %}