django url 管理 之 include

在Django框架中,我们一个项目可能有多个应用,如果所有的url放在一个模块里,当应用多的时候,那就先得很臃肿,这时候就需要按应用把url分离

项目目录如下:

cmdb
  cmdb
    settings.py
    ....
  cms
    __init__.py
    models.py
    urls.py
    views.py
    ...
    lend
      __init__.py
      views.py
      urls.py

这里根目录下cms/urls.py文件如何引用 cms/lend/urls.py 呢?

cms/urls.py:

from django.conf.urls import patterns,include

from django.contrib import admin

admin.autodiscover()

urlpatterns = patterns(('cms.views'),
    url(r'^$','login'),
    url(r'^lend/', include('cms.lend.urls'))
)

cms/lend/urls.py:
from django.conf.urls import patterns,include,url
from cms.lend import views  ##引用cms.lend.views

urlpatterns = [
    url(r'^list/$', views.list_lend), ##通过http://127.0.0.1:5000/cms/lend/list访问cms/lend/views.py:list_lend方法
]
##注意这里的中括号


cms/lend/views.py:
def list_lend(request):
    return render_to_response("lend/list.html", locals())

这样就能正确访问cms/lend/views.py 模块的内容了

参考