Skip to content

Django - 基础

Django 是一个高级的 Python Web 框架,旨在快速开发安全且易于维护的网站。它由经验丰富的开发人员构建,处理了大部分 Web 开发的繁琐工作,让你能够专注于编写应用程序,而无需重复发明轮子。它是免费且开源的。

注意:Django 是 Django Software Foundation (DSF) 的注册商标,并根据 3 条款的 BSD 许可协议获得许可。

  • 2003 年:由 Adrian Holovaty 和 Simon Willison 在 Lawrence Journal-World 报社作为内部项目启动。
  • 2005 年:于 2005 年 7 月根据 BSD 许可协议公开发布。以爵士吉他手 Django Reinhardt 命名。
  • 2008 年:成立 Django Software Foundation (DSF),负责框架的开发和推广使用。
  • 现在:Django 是一个成熟、积极开发的开源项目,拥有庞大、活跃的社区和全球贡献者,为无数高流量网站和应用程序提供支持。

Django 遵循几个关键的设计原则:

  • 松散耦合(Loosely Coupled): Django 中的组件(如模板引擎、ORM、表单库)被设计为相互独立。如果需要,你通常可以更换组件。
  • 更少代码(Less Code): Django 旨在减少样板代码(boilerplate code),从而加快开发速度。
  • 不要重复你自己(Don’t Repeat Yourself - DRY): 避免冗余。信息在系统内应该有一个单一的、明确的表示。
  • 快速开发(Fast Development): Django 提供了显著加速开发过程的工具和结构(如 Admin 站点、ORM、模板系统)。
  • 清晰设计(Clean Design): 鼓励 Web 开发中的最佳实践,促进可读、易于维护和清晰的代码。
  • 显式优于隐式(Explicit is better than implicit): Django 尽可能避免“魔法”。配置和操作应该清晰明了。

使用 Django 的主要优势包括:

  • 对象关系映射器 (ORM): 提供了一个强大的抽象层,允许你使用 Python 代码而不是 SQL 与数据库交互。支持 PostgreSQL、MySQL、SQLite、Oracle,以及通过第三方后端支持其他数据库。
  • 自动化 Admin 界面: 生成一个可用于生产环境的界面,用于管理应用程序的数据。
  • 优雅的 URL 设计: 使用 Python 正则表达式或更简单的路径转换器(path converters)设计清晰、可读的 URL。
  • 模板系统(Template System): 一个对设计人员友好的模板语言,具有继承等特性,使得创建 HTML 变得简单直观。
  • 表单处理(Form Handling): 一个健壮的系统,用于生成表单、验证输入和安全地处理数据。
  • 安全性(Security): 内置了针对常见 Web 漏洞的保护,如跨站脚本攻击 (XSS)、跨站请求伪造 (CSRF)、SQL 注入和点击劫持(clickjacking)。
  • 可伸缩性(Scalability): 组件是解耦的,允许你独立扩展应用程序的某些部分(例如,使用缓存、数据库复制)。
  • 多功能性(Versatility): 适用于构建从简单的内容管理系统到复杂的 Web 应用程序和 API 的任何东西。
  • 开箱即用(Batteries Included): 内置了对认证(authentication)、会话(sessions)、站点地图(site maps)、RSS Feeds 等常见任务的解决方案。
  • 开发环境(Development Environment): 包含一个轻量级的 Web 服务器,用于快速开发和测试。

虽然 Django 主要专注于关系型数据库,但通过第三方包(例如 Djongo)也可以集成 NoSQL 数据库(如 MongoDB),尽管这些并非 Django 核心团队官方支持。