主页 topics 什么是 Django? 什么是 Django?
Django Web 框架是一种免费的开源框架,可以加快使用 Python 编程语言构建的 Web 应用的开发速度。
黑色和蓝色背景
什么是 Django?

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

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

与从头开始构建 Web 应用相比,从 Django Web 框架开始构建显然更高效,这是因为前者还需要构建后端、API、JavaScript 和网站地图。 有了 Django Web 框架,Web 开发人员就可以集中精力创建独特的应用,并且与使用 Web 开发工具相比,还可以获得更大的灵活性。

认识 Django Web 框架

需要更多信息来了解什么是 Django 及其使用方式? 想要获得一些使用 Django Web 框架创建 Web 应用的实践经验? IBM 提供了一个分步教程,介绍了如何使用 IBM Cloud 服务来跟踪活动,监控以 Django Web 框架编写、在 IBM Cloud 上运行且基于 Python 的 Kubernetes 应用的运行状况。

在这么多可选的 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。 利用对象关系映射器 (ORM),Django 可将传统的数据库结构转换为 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 字符进行转义。 例如,它会自动将“<”转换为“<”,从而增加了在程序中注入恶意代码的难度。 Django 也用类似的方式来防止 SQL 注入,重新解释未经授权的命令,这让用户无法将自己的代码偷偷混入您的数据库中。

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

Django 的保护已超出了其明确的安全功能范畴:Django 用户群以其丰富的经验和专业知识增强了安全性。 如果您从头开始构建整个 Web 应用,一不小心就有可能将安全漏洞引入您的模块。 Django 包不仅使用广泛、开源,还备受 Web 开发人员好评,因此您更有把握相信它们能够保护您的数据。

扩展 Django

Web 开发中面临的最大挑战之一就是可扩展性。 您的应用必须准确处理任何给定时间所需的有效连接数。 如果连接数目超出估计数目,用户将会遭遇延迟和宕机。 而估计过于保守,则又要为未使用的带宽和 Web 服务器买单。 您需要一个可以随着用户数量增加而增长的应用。

Django Web 框架让扩展变得更容易。 因为 Django 应用可以管理用户会话,所以您可以添加更多应用实例,跨实例传输用户体验而不会丢失数据。 许多 Django 项目开发人员还使用 Varnish 等缓存管理器,为用户预先加载站点的静态元素。

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

回答“什么是 Django”这个问题时,一种答案就是,它是一个高度可扩展的 Web 框架。 它的可扩展性到底如何呢? 在众多超大型网站中,Instagram 和 Disqus 就是使用 Django 来支持其庞大用户群的。

相关解决方案
IBM Cloud

IBM Cloud 与 Red Hat 强强联合,提供市场领先的安全性、企业可扩展性和开放式创新,充分释放云计算和 AI 的全部潜力。

探索 IBM Cloud
资源 教程:分析日志并监视应用运行状况

面向 Web 开发人员的分步式教程,使用 IBM Cloud 服务来跟踪活动,监控以 Django 编写、在 IBM Cloud 上运行且基于 Python 的 Kubernetes 应用的运行状况。

什么是 Kubernetes?

Kubernetes 是一个开源容器编排平台,可自动部署、管理和扩展应用。 了解 Kubernetes 如何支持具有成本效益的云原生开发。

采取下一步行动

IBM Cloud 是全栈式云平台,包含 170 多种产品和服务,涵盖数据、容器、AI、IoT 和区块链等领域。通过 IBM Cloud Satellite,将现有基础架构(甚至是边缘或其他公有云)与 IBM Cloud 服务、API、访问策略、安全控制和合规性结合使用。

了解有关 IBM Cloud 的更多信息