找不到页面(404)Django中的错误

时间:2015-11-02 12:19:15

标签: django python-2.7

我的urls.py是

 from django.conf.urls import patterns,url
 from rango import views
 urlpatterns=patterns('',url(r'^$',views.index,name='index'))
 urlpatterns=patterns('',url(r'^about/$',views.about,name='about'))

我的views.py是

 from django.shortcuts import render
 from rango.models import Category
 # Create your views here.
 from django.http import HttpResponse
 def index(request):
     category_list = Category.objects.order_by('-likes')[:5]
     context_dict={'categories':category_list}
     return render(request, 'rango/index.html', context_dict)
 def about(request):
     return HttpResponse("go to index")

当我尝试转到地址http://127.0.0.1:8000/rango时,我找不到页面。但我可以去地址http://127.0.0.1:8000/rango/about

当我删除urls.py中的about url模式时,我可以转到地址http://127.0.0.1:8000/rango但不能转到http://127.0.0.1:8000/rango/about,因为about url模式不存在。

我无法立即访问这两个网址。

1 个答案:

答案 0 :(得分:4)

您已定义urlpatterns两次。包含about视图的第二个模式将替换第一个模式,这将阻止您访问索引视图。

而不是,

urlpatterns=patterns('',url(r'^$',views.index,name='index'))
urlpatterns=patterns('',url(r'^about/$',views.about,name='about'))

它应该是:

urlpatterns = patterns('',
    url(r'^$', views.index, name='index'),
    url(r'^about/$', views.about, name='about'),
)

在Django 1.7+中,您不再需要使用patterns,因此您可以将其简化为

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