路径与任何这些都不匹配

时间:2019-12-09 08:47:37

标签: django

我总是收到此错误“空路径与所有这些都不匹配。” 当我尝试通过此url访问页面时:

url('^about/$',views.AboutView.as_view(),name = 'about')

,当我删除"^about/$"部分时,它会起作用:

url('',views.AboutView.as_view(),name = 'about')

我该如何解决?

这是通话链接:

<li><a class="navbar-brand" href="{% url 'about'%}">About</a></li>

这是view.py

class AboutView(TemplateView):
    template_name = 'about.html'

还有这个urlpatterns

    urlpatterns = [
    url('^about/$',views.AboutView.as_view(),name = 'about')
]

3 个答案:

答案 0 :(得分:1)

from django.conf.urls import url 
from blog import views 

urlpatterns = [ url('about',views.AboutView.as_view(),name='about') ]

代替此

from django.urls import path
from blog import views 
urlpatterns = [
    path('about/', views.AboutView.as_view(),name='about'),

使用与主网址相同的模式

答案 1 :(得分:0)

path('about /',views.AboutView,name ='about'),

答案 2 :(得分:0)

遵循两种创建URL的方法不好,因为django==2.0以来,他们引入了非常好用的简单方法来声明URL。 旧的方式...

from django.conf.urls import url

urlpatterns = [
    url(r'^about/$', AboutView.as_view(), name="about")
]

但是以新的方式,它更干净了...

from django.urls import path

urlpatterns = [
    path('about/', view.AboutView.as_view())
]

但是,如果您想使用正则表达式,请使用re_path()而不是path()

urlpatterns = [
    re_path(r'about/$', view.AboutView.as_view())
]

在我看来,最好还是使用旧的或新的模式,但不要同时使用两种模式。它使您的代码看起来更简洁。

相关问题