我总是收到此错误“空路径与所有这些都不匹配。” 当我尝试通过此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')
]
答案 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())
]
在我看来,最好还是使用旧的或新的模式,但不要同时使用两种模式。它使您的代码看起来更简洁。