包含其他URLconfs


包含其他的URLconfs:

在任何时候,你的urlpatterns都可以包含其他URLconf模块。这实际上将一部分URL放置于其他URL下面。

例如,下面是Django 网站自己的URLconf 中一个片段.它包含许多其他URLconf:

node2:/exam/mysite/mysite#cat urls.py
"""mysite URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
   url(r'^polls/', include('polls.urls', namespace='polls')),
   url(r'^books/', include('polls.urls', namespace='polls')),
   url(r'^admin/', admin.site.urls),
]



from django.conf.urls import include, url

urlpatterns = [
    # ... snip ...
    url(r'^community/', include('django_website.aggregator.urls')),
    url(r'^contact/', include('django_website.contact.urls')),
    # ... snip ...
]

注意,这个例子中的正则表达式没有包含$(字符串结束匹配符),但是包含一个末尾的斜杠。

每当Django遇到include()时,它会去掉URL中匹配的部分并将剩下的字符串发送给包含的URLconf做进一步处理。

另外一种包含其他URL模式的方式是使用一个url()实例的列表 
url(r'^contact/', include('polls.urls',namespace='aaa')),


node2:/exam/mysite/mysite#cat urls.py
"""mysite URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
   url(r'^polls/', include('polls.urls', namespace='polls')),
   url(r'^books/', include('polls.urls', namespace='polls')),
   url(r'^admin/', admin.site.urls),
   url(r'^contact/', include('polls.urls',namespace='aaa')),
]



    url(r'^change/(?P<year>[0-9]{4})/$', views.change),
	
	
node2:/exam/mysite/polls#cat urls.py
from django.conf.urls import url,include

from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    # ex: /polls/5/
    url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
    # ex: /polls/5/results/
    url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
    # ex: /polls/5/vote/
    url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),

    url(r'^articles/2003/$', views.special_case_2003),
    url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive),
    url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/$', views.month_archive),
    url(r'^articles/(?P<year>[0-9]{4})/(?P<month>[0-9]{2})/(?P<day>[0-9]{2})/$', views.article_detail),
    
    url(r'^articles/page(?P<num>[0-9]?)/$', views.page),

    url(r'^change/(?P<year>[0-9]{4})/$', views.change),
   
    
]



<WSGIRequest: GET '/contact/change/1122/'>
1122
Internal Server Error: /contact/change/1122/
Traceback (most recent call last):
  File "/usr/local/python27/lib/python2.7/site-packages/django/core/handlers/exception.py", line 41, in inner
    response = get_response(request)
  File "/usr/local/python27/lib/python2.7/site-packages/django/core/handlers/base.py", line 198, in _get_response
    "returned None instead." % (callback.__module__, view_name)
ValueError: The view polls.views.change didn't return an HttpResponse object. It returned None instead.
[18/Aug/2018 21:04:33] "GET /contact/change/1122/ HTTP/1.1" 500 56611




原文地址:https://www.cnblogs.com/hzcya1995/p/13349086.html