了提升模块化程度,我们可以换种方式把入站 URL 映射到视图上,而不直接在项目层设置。首先,要修改项目的 urls.py 文件,把
针对 myblog 应用的请求交给 myblog 应用处理。然后,在 myblog应用中指定如何处理请求。
首先,打开项目配置目录web中的 urls.py 文件。把 urlpatterns 列表改成下面这样:
from django.conf.urls import url
from django.contrib import admin
from django.conf.urls import include
from myblog import views
urlpatterns = [
url(r'^$', views.index, name='index'),
url(r'^myblog/', include('myblog.urls')),
# 上面的映射把以 rango/ 开头的 URL 交给 rango 应用处理
url(r'^admin/', admin.site.urls),
]
可以看出, urlpatterns 是个 Python 列表。新增的映射寻找能匹配 ^myblog/ 模式的 URL。遇到这样的 URL 时, myblog/ 后面的部
分传给 myblog,由 myblog.urls 处理。这一步是通过django.conf.urls 模块中的 include() 函数实现的。这是一种分段处理 URL 字符
串的方式。这里,完整的 URL 先去掉域名,余下的部分( myblog/ )传给 web 项目,找到匹配的映射后,再把 myblog/ 去掉,把
空字符串传给 mybl