2015-11-02 169 views
0

我的urls.py是找不到网页(404)错误在Django

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模式不存在。

我无法同时访问这两个网址。

回答

4

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

相反的,

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'), 
] 
+0

Thanks.The问题解决了 –