我的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模式不存在。
我无法立即访问这两个网址。
答案 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'),
]