django中URLconf配置的include技巧

96
SteveBelly
2017.10.09 19:13* 字数 504

Django使用URLconf这个python模块来作为网址的解析并且对应到views.py中函数的主要处理者.由于解析网址的方式是以正则表达式的的语言来处理,因此功能非常强大,也很有弹性。

假设我们设计的项目越来越大,功能越来越多,所用到的超链接也会对应的更多、更复杂,此时我们应该考虑到在urlpatterns使用include方法,这样不仅使项目的代码可读性提高,对于以后项目的扩展开发也非常有利。

简单来说,对于同样性质的网页,可以使用include的方式把urlpatterns放到另一个地方去设置。

include方法是用在project/urls.py模块中的urlpatterns配置项下的,在进行此配置时,不要让urlpatterns正则app下的views函数,而是正则app下的urls模块,然后在app/urls.py模块下再进行urlpatterns配置。此处的urlpatterns可以直接正则app下的views函数。

1.  url(r'^admin/', include('admin.site.urls')) 

这是project/urls/urlpatterns

2. url(r'^index/$', views.index) 

这是app/urls/urlpatterns

值得注意的是: 不能在第一步^admin/后面加上“$”, 因为后面还有其他定义。

这样配置完成后,包含请求元数据的Request对象会先访问项目下的urls,根据urls下的正则被分配到相应的应用下的urls,然后根据里边的正则被分配到views中,当djangoviews根据urls调用相应的函数,组织相关数据,最后组成Response,返回给django。(当然,我说的这些前提是html模板放在django中,不过我们一般不这样做,html模板一般都放在服务器上。django只负责数据的传输。)

@版权所有,您的支持是我最大的动力。

日记本