Skip to content

Django - 概览

Django 是一个高级 Python Web 框架,旨在快速开发安全且易于维护的网站。它由经验丰富的开发者构建,遵循“不要重复你自己”(Don’t Repeat Yourself,DRY)原则,并提供一套强大的开箱即用的工具和库。

许多 Web 框架使用模型-视图-控制器(Model-View-Controller,MVC)架构模式。MVC 将一个应用程序分成三个相互连接的组件:

  • **模型(Model):**管理应用程序的数据、逻辑和规则。它与数据库交互。
  • **视图(View):**负责向用户呈现数据(用户界面)。
  • **控制器(Controller):**处理用户输入,与模型交互,并选择合适的视图进行渲染。

Django 的模型-视图-模板(Model-View-Template,MVT)模式

Section titled “Django 的模型-视图-模板(Model-View-Template,MVT)模式”

Django 大体上遵循 MVC 模式,但有自己的术语,通常称为模型-视图-模板(MVT)模式。关键区别在于组件如何映射以及 Django 为你处理了什么:

  • **模型(Model):**表示数据结构。这与 MVC 中的模型基本相同。Django 提供了一个强大的对象关系映射器(Object-Relational Mapper,ORM),可以将模型定义为 Python 类并与数据库交互。
  • **视图(View):**在 Django 中,“视图”处理请求逻辑。它接收 HTTP 请求,处理它(例如,与模型交互以获取数据),并返回 HTTP 响应。这更接近传统 MVC 模式中的控制器。
  • **模板(Template):**这是表现层。它定义输出(通常是 HTML)的结构,嵌入模板标签和变量以动态显示数据。这更接近传统 MVC 中的视图。

那么,Django MVT 中的“控制器”在哪里呢?

Section titled “那么,Django MVT 中的“控制器”在哪里呢?”

框架本身充当控制器,处理大部分连接用户请求到适当视图的逻辑。这包括:

  • **URL 调度器(URL Dispatcher):**Django 的 URL 配置(urls.py)将传入的 URL 映射到特定的视图函数或类。
  • **请求/响应处理(Request/Response Handling):**核心框架管理 HTTP 请求和响应对象。
  • **中间件(Middleware):**全局处理请求和响应。
  1. 用户向特定 URL 发出请求。
  2. Django 的 URL 调度器检查 urls.py 查找匹配的模式。
  3. 如果找到匹配项,则调用相应的 Django 视图函数/类,并接收请求详情。
  4. 视图执行其逻辑。这通常涉及与 Django 模型交互以查询或修改数据库中的数据。
  5. 视图然后通常加载一个模板。
  6. 模板使用视图提供的数据(即“上下文”)进行渲染。
  7. 视图将渲染后的模板作为 HTTP 响应返回给用户的浏览器。

本质上,作为一名 Django 开发者,你主要专注于定义模型(数据结构)、编写视图(请求逻辑)和创建模板(表现层),同时利用 Django 内置的 URL 路由和框架组件将它们连接起来。