Django 3.0应用开发详解
上QQ阅读APP看书,第一时间看更新

4.2 Django路由请求处理过程

当某个用户在Django网站发出请求时,Django框架将按照下述方式确定Python代码的执行方式。

1)Diango框架先确定在什么位置使用根url的配置模块,通常而言,这个模块需要在配置参数的ROOT_URLCONF中设置,特殊情况下,如果在Django的中间件中有别的设置,那么这个模块名称可能要在其他位置配置。

2)Django框架在加载了根url的配置模块后,会在其中遍历所有名称为urlpattern的对象,这个变量的值应为一个序列,序列中每个值都是特有Django路由模块实例对象。

3)在Django框架中可以设置多个urlpattern对象,在实际执行中按照其先后顺序依次查看是否有匹配url的处理方法。

4)在找到匹配的处理模块后,Django框架导入并调用url指定视图对象,对象可以为一个Python函数,也可以为一个类视图。视图根据需要可传递以下参数:

HttpRequest的实例对象,该参数为视图对象必须传递内容。

除HttpRequest对象外,还可以根据需要选择性传递位置参数变量与关键字变量。

5)如果找不到匹配的处理模块,在用户未定义相关错误处理视图的情况下,Django将会调用默认的错误处理视图。