Django-请求解决方案

Django-请求解决方案,django,url-routing,Django,Url Routing,我想知道Django通常是如何解析请求URLurlpatterns 我的理论: Django在某个时刻将其所有的urlpatterns转换为正则表达式列表,然后尝试将它们与传入请求的url进行匹配 问题: 我说得对吗?如果是的话,有人能告诉我在源代码中发生了什么吗 看起来django文档中并没有提到这一点,我觉得我在对源代码进行盲目搜索。任何见解都值得赞赏。对过程进行了描述。简言之: Django确定要使用的根URLconf模块 Django加载该Python模块并查找变量urlpatterns

我想知道Django通常是如何解析请求URL
urlpatterns

我的理论:

Django在某个时刻将其所有的
urlpatterns
转换为正则表达式列表,然后尝试将它们与传入请求的url进行匹配

问题:

我说得对吗?如果是的话,有人能告诉我在源代码中发生了什么吗

看起来django文档中并没有提到这一点,我觉得我在对源代码进行盲目搜索。任何见解都值得赞赏。

对过程进行了描述。简言之:

  • Django确定要使用的根URLconf模块
  • Django加载该Python模块并查找变量urlpatterns。这应该是django.urls.path()和/或django.urls.re_path()实例的Python列表
  • Django按顺序运行每个URL模式,并在与请求的URL匹配的第一个模式处停止
  • 一旦其中一个URL模式匹配,Django就会导入并调用给定的视图,该视图是一个简单的Python函数(或基于类的视图)
  • 如果没有URL模式匹配,或者在此过程中的任何时候引发异常,Django将调用适当的错误处理视图