什么是 Django?

位于拉德芳斯现代商业区的 Place Ronde

什么是 Django?

Django Web 框架是一个免费的开源框架,可以加快使用 Python 编程语言构建的 Web 应用程序的开发。

Django(发音为“Jango”,以著名爵士吉他手 Django Reinhardt 命名)是一个免费的开源框架,于 2005 年首次公开发布。Django 有利于“快速开发和推动实现简洁实用的设计”。部署在 Web 服务器上的 Django Web 框架可以帮助开发人员快速生成功能丰富、安全且可扩展的 Web 前端。

使用 Django Web 框架构建 Web 应用程序比从头开始构建要高效得多,因为从头开始构建需要构建后端、API、JavaScript 和站点地图。使用 Django Web 框架,网络开发人员可以专注于创建独特的应用程序,并享受比使用 Web 开发工具更大的灵活性。

了解 Django Web 框架

您是否需要更多信息来了解什么是 Django 及其使用方法?您是否想亲身体验使用 Django Web 框架创建的 Web 应用程序?IBM 提供了分步教程,介绍如何使用 IBM® Cloud 服务来跟踪活动并监控基于 Python 的 Kubernetes 应用程序的运行状况,该应用程序使用 Django Web 框架编写而成,在 IBM Cloud 上运行。

既然有那么多 Python Web 框架可供选择,为什么还要选择 Django Web 框架呢?它可能不是最容易使用的,也肯定不是最新的。不过,当您构建的 Web 应用程序涉及跨站脚本且预计将处理大量用户或一组复杂的功能(例如 API 连接或用户身份验证)时,Django Web 框架可能是合适的选择。从 GitHub 上的项目数量来看,它也非常受欢迎。

任何精通 Python 编程语言及其语法的人都应该能够使用 Django Web 框架启动项目来构建 Web 应用程序。(注意:虽然大部分 Django 核心是 Python,但 admin 和 gis contrib 应用程序包含 JavaScript 代码。)但是,中高级 Django 开发人员可以更好地利用 Django 模型,这些模型具有更复杂的功能。

核心功能封装

Django Web 框架已投入使用超过十年,并已经由非常活跃的社区进行了全面测试并得到不断改进。它甚至还有一个非营利组织;Django 软件基金会负责推广、支持和推进 Django Web 框架。Django 的最大优势在于其庞大的功能集:具有 10,000 多个 Django 软件包,该框架几乎涵盖了需要 Web 应用程序执行的任何操作。软件包包括 API、内容管理系统、用户身份验证、表单验证和 CAPTCHA 保护。

Django Web 框架的用户群提供全力支持且非常专注,很多才华横溢的 Django 开发人员自愿贡献自己的时间和专业知识来开发、改进和修补 Django 软件基础。您的应用程序可以通过利用 Django 为所有开发人员提供的精心设计的软件包,从这一承诺中获益。

优势

让数据库管理更像 Python

启动 Django 项目可以让您在 Python 中构建应用程序的整个数据模型,而无需使用 SQL。Django 使用对象关系映射器 (ORM) 将传统数据库结构转换为 Python 类,以便更轻松地在完全的 Python 环境中工作。Django-MySQL 支持 JSON 数据类型及相关功能。

在 Django 中,数据库表会变成 Python 类。Web 应用程序通过 Django 模型访问和管理数据。只需将数据库字段转换为类属性即可。如果您熟悉 Python 中的类属性定义,则可以轻松设计和管理 Django 数据库。

Django Web 框架提供与应用程序数据库完全集成的捷径。它提供 CRUD(创建、读取、更新、删除)功能、HttpResponse 和跨站脚本功能,提供用户管理功能以及软件管理功能等等。您导入软件包,连接到数据库,然后继续开发应用程序中使您的产品与众不同的部分。

使用模板创建动态页面

由于 Django 专为 Web 应用程序开发而设计,因此它需要一种方法来轻松创建动态 HTML,以显示用户的独特数据。Django 应用程序使用称为 Django 模板语言 (DTL) 的内置模板引擎生成动态 HTML。

HTML 模板允许 Django 开发人员将静态元素(包括颜色、徽标或文本等设计元素)与数据(如用户名或位置)组合,以即时创建新的网页。借助模型-视图-控制器 (MVC) 技术,如果您希望应用程序在用户登录时称呼用户的名字表示问候,可以构建显示静态文本(“欢迎来到本网站,X”)的模板,然后使用动态占位符以自动显示数据库中该用户的名字。页面呈现时,会将动态元素与静态元素结合起来,从而创造无缝的用户体验。

增强安全性

在回答“什么是 Django”时,我们必须谈谈 Django 在安全性方面提供的特殊功能。Web 应用程序经常成为黑客攻击目标,尤其是存储用户登录信息或财务数据的应用程序。Django 提供的功能有助于保护应用程序和用户。

接受用户输入数据的网站面临的最大风险之一,是恶意用户会向其数据注入代码,从而对系统造成灾难性影响。为了防范此类攻击,Django 模板会自动对任何用户输入字段中的常见 HTML 字符进行转义。例如,它会自动将“<”转换为“&lt;”,以增加向程序中注入恶意代码的难度。Django 以类似方式防止 SQL 注入,重新解释未经授权的命令,以便用户无法将自己的代码偷偷植入您的数据库。

Web 开发人员还可以依靠 Django API 自动使用跨站请求伪造 (CSRF) 保护,将用户特定的密钥令牌插入 POST 请求。因此,Web 开发者可以防止恶意用户复制其他 POST 请求,以伪装成获授权用户。

Django 的保护超越了显式安全功能:Django 用户群的丰富经验和专业知识增强了安全措施。如果您从零构建整个应用程序,就有可能意外在模块中引入安全漏洞。Django 软件包使用广泛、且为开源,并经过 Web 开发人员仔细审查,因此您可以确信,它们能够保护您的数据。

扩展 Django

Web 开发的最大挑战之一是可扩展性。您的应用程序必须能够准确处理任何给定时间所需的活动连接数。如果连接数超出您的估计,您的用户将出现延迟和停机。如果估算过于保守,就会为您不用的带宽和网络服务器付费。您需要能够随着用户数量增加而扩展的应用程序。

Django Web 框架让扩展变得轻松。由于 Django 应用程序可以管理用户会话,因此您可以添加更多应用程序实例,并在各个应用程序实例之间转移用户的体验,而不会丢失数据。许多 Django 项目开发人员还使用缓存管理器,例如 Varnish,为用户预加载网站的静态元素。

您需要仔细配置缓存管理器,以避免意外缓存整个网站,包括动态元素。缓存配置不当还可能导致一个用户与另一个用户共享数据。您可以将 Django 的本机(但有限)缓存框架与外部缓存管理器结合使用,释放性能资源,同时选择性存储内容,从而避免过度缓存。

当被问及“什么是 Django?”时,其中一个答案是:它是一个高度可扩展的 Web 框架。它的可扩展性如何?Instagram 和 Disqus 是使用 Django 来支持庞大用户群的大型网站。