Django-urls.py的配置

以前配置在工程同工程名的urls.py管理所有app的url

Django-urls.py的配置_第1张图片
文件路径

缺点:如果url太多就都写到这里,很乱,很长,没有分类。方然系统提供了一个空格'',作用是写共同的url部分,但是第二个app访问和映射都不同,先看看这种写法吧。

from django.conf.urls import patterns, include, url

urlpatterns = patterns('setapp.views',
    url(r'setapp/index/$','index'),
    url(r'setapp/time/$','time'),                       
)

不用的app采用不同的映射组,这样在多个app的时候就可以用不用分类,放不同url。这里是一个app没有必要分开

from django.conf.urls import patterns, include, url

urlpatterns = patterns('setapp.views',
    url(r'setapp/index/$','index'),
    url(r'setapp/time/$','time'), 
)

urlpatterns += patterns('twoapp.views',
    url(r'twoapp/index/$','index'), 
    url(r'twoapp/time/$','time'),                       
)   

没有app,都有自己的urlpattens管理,看起来简介。但是这个文件中放了所有的,urls映射,我们可不可以把没有urls映射都放到自己的appurl中呢?答案是可以的。

可以在每个app中创建一个urls.py文件,这样每个app的url都自己管理了,结构很清楚,但是不觉得还需要外部配置urls.py中写出找到内部app中urls.py自己的映射。我们在最外部配置文件中的,urls.py中写出:

from django.conf.urls import patterns, include, url

urlpatterns = patterns('',
    url(r'^setapp/',include('setapp.urls')),
    url(r'^twoapp/',include('twoapp.urls')),
)

该映射的意思是

​ 如果你地址中是setapp,就去setapp.urls文件中去找自己具体的映射。

​ 如果你地址中是twoapp,就去twoapp.urls文件中去找自己具体的映射。

所以还需要设置具体。app中的url.py文件,这个文件刚才我已经提到了。


urlpatterns = patterns('twoapp.views',
    url(r'^index/$','index'),          
)

工程中的映射,可以定位到app映射文件,在app中写入自己的映射地址。

urlpatterns = patterns('',
    url(r'^twoapp/',include('twoapp.urls')),
)

注意没有$结束符。没有匹配完呢,定位到文件所以加上了include定向函数。

你可能感兴趣的:(Django-urls.py的配置)