Django URLconfs 中通过包含其他URLconfs 来管理部分url相同的url

第一种情况:一个项目下每个相同app下的每个url有相同的前缀,为了方便管理把各自的不同url部分交给各自的URLconfs管理。
在任何时候,你的urlpatterns 都可以包含其它URLconf 模块。这实际上将一部分URL 放置于其它URLconfs 下面。

from django.xonf.urls import include, url

urlpatterns = [
    url(r'^community/', include('mysiteapp.urls')),   # 把匹配后剩下的字符串传给mysiteapp的urls 模块 
    url(r'^contact/', include('otherapp.urls')),
]

注意,这个例子中的正则表达式没有包含$(字符串结束匹配符),但是包含一个末尾的斜杠。每当Django 遇到include()(django.conf.urls.include())时,它会去掉URL 中匹配的部分并将剩下的字符串发送给包含的URLconf 做进一步处理。


第二种情况,在同一个app下或许部分url有相同前缀
另外一种包含其它URL 模式的方式是使用一个url() 实例的列表。例如,请看下面的URLconf:

from django.conf.urls import include, url


extra_patterns = [
    url(r'^reports/(?P<id>[0-9]+)/$', app.view.report),
    url(r'^charge/$', app.view.charge),
]

urlpatterns = [
    url(r'^$', main_views.homepage),
    url(r'^help/', include('help.urls')),
    url(r'^credit/', include(extra_patterns)),  # /credit/reports/231、/credit/charge/
]

在这个例子中,‘/credit/reports/123/ ’ URL将被 app.view.report() 这个Django 视图函数处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值