Django-请求解析

时间:2018-11-27 09:31:56

标签: django url-routing

我想知道Django一般如何解析请求网址urlpatterns

我的理论:

Django有时会将其所有urlpatterns转换为正则表达式列表,然后尝试将其与传入请求的URL进行匹配。

问题:

我正确吗?如果是,有人可以指出我在源代码中的什么地方吗?

django docs中似乎没有提到任何内容,我感觉我在源代码中进行盲目搜索。任何见解都很感激。

1 个答案:

答案 0 :(得分:1)

here中描述了该过程。简而言之:

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