Django路由机制

    xiaoxiao2024-11-19  8

    Django需要在新建的工程目录里,在新建不同的app,不同的app就像一个网页的各个构成部分,比如说有登录系统,制图系统,管理等多个模块构成,这里Django的路由机制设定非常完美,在工程目录mysite下有一个urls.py文件,在自己新建的app目录比如说polls里面又有一个urls的文件。第一个urls文件通过正则表达式确定下一级urls(也就是我们的polls  app urls.py),一级一级向下指引,最终指向view.py里面的具体处理函数。理解了以后,可以将其看做一个多维的金字塔结构,url一层一层解析。

    include语法相当于多级路由,它把接收到的url地址去除与此项匹配的部分,将剩下的字符串传递给下一级路由urlconf进行判断。在路由的章节,有更加详细的用法指导。

    include的背后是一种即插即用的思想。项目根路由不关心具体app的路由策略,只管往指定的二级路由转发,实现了应用解耦。app所属的二级路由可以根据自己的需要随意编写,不会和其它的app路由发生冲突。app目录可以放置在任何位置,而不用修改路由。这是软件设计里很常见的一种模式。

    建议:除了admin路由外,尽量给每个app设计自己独立的二级路由。

    urls文件里面有path方法,path方法的参数route 是一个匹配 URL 的准则(类似正则表达式)。当 Django 响应一个请求时,它会从 urlpatterns 的第一项开始,按顺序依次匹配列表中的项,直到找到匹配的项,然后执行该条目映射的视图函数或下级路由,其后的条目将不再继续匹配。因此,url路由的编写顺序非常重要!

     

    最新回复(0)