
1.1.3 Django框架的View视图展示机制
Django框架采用了MTV设计模式,在工作机制上自然也有些特别之处,其中最显著的就是V视图(View)部分。请读者再看一下图1.2中的描述,MTV模式中的V视图(View)是不负责处理用户输入的,这一点就是MTV模式特殊之处。
Django框架下的V视图(View)不负责处理用户输入,只负责选择要展示的数据并传递到T模板(Template)上。然后,由T模板(Template)负责展示数据(展示效果),并最终呈现给终端用户。进一步来讲,就是Django框架将MVC中的V视图(View)解构为V视图和T模板两个部分,分别用于实现“展现数据”和“如何展现”这两部分功能,这样T模板(Template)可以根据用户需求来随时更换,而不仅仅限制于内置的模板。
Django框架的视图展示流程如图1.3所示。

图1.3 Django视图展示
在Django服务器启动时,会自动加载在同一目录下的配置文件(settings.py),该配置文件涵盖了项目所需的全部配置参数。其中,最重要的配置参数就是“ROOT_URLCONF”,定义了Django服务器使用哪个Python模块来用作本项目的URLConf(一般默认为urls.py)。
当用户在浏览器(Web Browser)中访问url时,Django服务器会接收到一个HTTP请求,通过服务器端特定的Handler(ModPythonHandler),创建HttpRequest并传递给中间组件(Request Midware)进行处理,这些中间组件起着功能增强的作用。
Django服务器会根据ROOT_URLCONF配置的参数来加载URLConf;然后按顺序逐个匹配URLConf中的URLpatterns,如果匹配成功,则会调用相关联的View视图中间件函数,并将HttpRequest对象作为第一个参数向下传递;最后,通过View视图返回一个HttpResponse对象(通常是Response)。
另外,Django框架还实现了完整的异常处理机制,其主要是通过异常处理中间件(Exception Midware)来实现的。当系统出现异常时,异常处理中间件(Exception Midware)会截获并判断异常类型,从而返回异常错误(404或500等)信息。