Python 获取不同的视图以显示不同的内容
我在这里遵循这本指南,并从这里开始阅读/抄写 但我无法获得不同的视图来显示不同的内容。我不知怎么找不到解释 这是我的项目url.pyPython 获取不同的视图以显示不同的内容,python,django,Python,Django,我在这里遵循这本指南,并从这里开始阅读/抄写 但我无法获得不同的视图来显示不同的内容。我不知怎么找不到解释 这是我的项目url.py from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: # from django.contrib import admin # admin.autodiscover() urlpatterns = patte
from django.conf.urls import patterns, include, url
# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'Sayth.views.home', name='home'),
# url(r'^Sayth/', include('Sayth.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
url(r'^rango/', include('rango.urls')),
url(r'^rango/about/', include('rango.urls')),
)
这是我的应用程序url.py
from django.conf.urls import patterns, url
from rango import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^$', views.about, name='about'),
)
这是我的看法
# Create your views here.
from django.http import HttpResponse
def index(request):
return HttpResponse("Rango says Hello World! <a href='/rango/about'>About</a>" )
def about(request):
return HttpResponse("This is the about page. <a href='/rango/'>Index</a>")
#在此处创建视图。
从django.http导入HttpResponse
def索引(请求):
返回HttpResponse(“Rango向世界问好!”)
def关于(请求):
返回HttpResponse(“这是关于页面”)
我的两个页面都解析了,但都显示了索引页面,为什么?定义的URL不正确。根URL.py应该只有一个指向应用程序的指针,而应用程序的URL.py应该解析不同的端点 请尝试以下URL.py:
#Project urls.py
from django.conf.urls import patterns, include, url
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'Sayth.views.home', name='home'),
# url(r'^Sayth/', include('Sayth.foo.urls')),
# Uncomment the admin/doc line below to enable admin documentation:
# url(r'^admin/doc/', include('django.contrib.admindocs.urls')),
# Uncomment the next line to enable the admin:
# url(r'^admin/', include(admin.site.urls)),
url(r'^rango/', include('rango.urls')),
)
#rango/urls.py
from django.conf.urls import patterns, url
from rango import views
urlpatterns = patterns('',
url(r'^$', views.index, name='index'),
url(r'^about/$', views.about, name='about'),
)
如果您不希望在应用程序上创建url.py,您只需执行如下url映射:
urlpatterns = patterns('',
# ...
# most detailed urls comes first.
url(r'^rango/about/?$', 'rango.views.about', name='about'),
url(r'^rango/?$', 'rango.views.index', name='index'),
)
正如第一个答案所提到的,项目的url.py只需要一个指向应用程序url.py的指针 从概念上讲,任何与“^rango/”匹配的内容都应该传递到应用程序url.py,然后应用程序处理url的其余部分。。“/”或“关于/” 因此,在应用程序url.py中,您需要确保每个模式都存在映射 在tangowithdjango的书中,“关于”页面是一个练习,留给读者,但是如果将来有问题,您可以随时检查应用程序的代码,例如: 项目URL.py: 应用程序URL.py:
然后我使用Sayth.URL中定义的URLconf得到错误,Django尝试了以下URL模式,顺序为:^rango/^$[name='index']^rango/^about$[name='about']当前URL rango/about/与这些模式中的任何一个都不匹配。编辑答案以包含尾部斜杠。请现在试一试。