Django教程:功能特性 Archi建筑与历史
Django 为网络上一些最大的网站提供支持,同时保持ping 日常开发快速高效且井然有序。在深入探讨其特性、架构和发展历程之前,以下章节将首先介绍 Web 框架的基础知识以及 Django 的独特之处。
Django 教程摘要
本Django教程从零开始讲解所有基础知识。在本教程中,您将学习Django的定义、发展历程、功能特性、框架特点、组件构成、优缺点等概念。
在学习 Django 之前,让我们先了解一下:
什么是 Web 框架?
Web框架是一个代码库,它可以帮助您构建灵活、可扩展且易于维护的动态网站、Web应用程序或Web服务。不同的Web框架包括用于PHP的Zend, Ruby on Rails 适用于 Ruby 等语言。
什么是Django?
Django的 是一个 Web 开发框架 Python 它提供了一套标准方法,可实现快速高效的网站开发。这款高级 Web 框架的主要目标是创建复杂的数据库驱动型网站。它能帮助您构建和维护高质量的 Web 应用程序,并使开发过程更加流畅、省时,从而实现快速开发。
为什么选择 Django?Django 的主要优势
以下是 Django 的主要优点:
- Django易于安装和运行,并提供了多种入门选项。
- 它为管理活动提供了一个即用型用户界面。
- 它利用其内置的国际化系统,实现了多语言网站。
- 它可以帮助您快速满足巨大的流量需求。
- Django 用于构建各种类型的内容管理系统、社交网络以及科学计算平台。
- Django 可以帮助您提供端到端的应用程序测试。
- 它可以帮助您使用 HTML 输出来记录您的 API。
- REST框架对多种身份验证协议提供了丰富的支持。
- 它提供权限和限流策略。
- 它广泛用于限制单个用户的 API 请求速率。
姜戈的历史
| 年份 | 里程碑 |
|---|---|
| 2003 | 该项目由 Adrian Holovaty 和 Simon Willison 发起,是 Lawrence Journal-World 报社的一个内部项目。 |
| 2005 年 7 月 | 该片于 2005 年 7 月发行,片名为《Django》,以爵士吉他手 Django Reinhardt 的名字命名。 |
| 2008 年 6 月 | 据称,Django 软件 Foundation (DSF) 将维护 Django。 |
| 2009 年 7 月 29日 | Django 1.1 发布,新增了聚合和基于事务的测试等功能。 |
| 17日 2010月 XNUMX年 | Django 1.2 版本发布。此次更新新增了多数据库和邮件后端等功能,并对会话和 Cookie 进行了改进。 |
| 23 Mar 2011 | 1.3 版本引入了基于类的视图和静态文件等功能。 |
| 23 Mar 2012 | 1.4 版本发布时新增了时区和浏览器内测试等功能。 |
| 26年二月2013日 | 1.5 版本附带了 Python 3 支持和可配置的用户模型功能。 |
| 6 年 2013 月 XNUMX 日 | 1.6 版本增加了数据库事务管理和连接池功能。 |
| 2/2014/XNUMX | 1.7 版本新增了应用程序加载、迁移和配置等功能。 |
| 1年四月2015日 | 为多种模板引擎提供原生支持。 |
| 1 Dec 2015 | 1.9 版本引入了自动密码验证功能。 |
| 1 Aug 2016 | 在 1.10 版本中,全文搜索 PostgreSQL 已启动,推出。 |
| 4年四月2017日 | 1.11 版本成为最后一个支持该版本的版本。 Python 2.7. |
| 2 Dec 2017 | 2.0 版本成为第一个 Python 仅限 3 个版本。 |
| 1 Aug 2018 | 2.1 版本增加了模型“查看”权限支持功能。 |
| 2021 | 移除对 Django 3.0 的支持,并添加了对 Django 3.2 的支持。 |
现在,在本篇 Django 入门教程中,让我们来学习 Django 的特性。
姜戈的特点
以下是 Django 的功能:
- 帮助您定义模式 URL在您的申请中。
- 简单而强大 URL 系统。
- 内置身份验证系统。
- 一种面向对象的编程语言数据库,提供一流的数据存储和检索功能。
- 自动管理界面功能支持添加、编辑和删除项目。您可以根据需要自定义管理面板。
- 缓存框架自带多种缓存机制。
现在,在本Django框架教程中,我们将学习Django的特点。
Django的特点
以下是Django的主要特点:
- 松耦合 – Django 可以帮助你使堆栈中的每个元素与其他元素相互独立。
- Less 码 确保有效发展。
- 未重复 所有东西都应该在一个地方开发完成,而不是重复开发。
- 快速发展 – Django 提供快速可靠的应用程序开发。
- 一致的设计 – Django 保持了简洁的设计,并且可以轻松遵循最佳的 Web 开发实践。
接下来在本 Django 初学者教程中,我们将了解 Django 的架构。
Django的 Archi架构:MVC 和 MVT
下面是Django的详细架构:
Django的 Archi质地
MVC模式
在讨论提供用户界面(Web 或桌面)的应用程序时,我们通常会提到 MVC 架构。MVC 模式基于模型(Model)、视图(View)和控制器(Controller)三个部分。
此 型号 定义数据结构并负责查询数据库。
此 查看 定义应呈现什么数据并返回 HTTP 响应。
此 控制器 是应用程序中处理用户交互的部分。
Django MVC-MVT 模式
模型-视图-模板(MVT)与模型-视图-框架(MVC)是不同的概念。这两种架构模式的主要区别在于,Django 本身管理控制器部分(控制模型和视图之间交互的软件代码)。模板是一个 HTML 文件,其中混合了一个 Django 模板语言文件,也称为 DTL。
下图展示了 MVT 模式的所有组件如何相互交互以满足特定的用户请求。
MVT Archi质地
如上图所示,用户向 Django 请求资源。Django 作为控制器,检查资源是否可用。 URL.
如果 URL 在 maps 视图中,会调用一个与模型和模板交互的视图。然后,Django 会响应用户并将模板作为响应发送出去。
现在,在本Django入门教程系列中,我们将学习Django的组件。
Django 的组件
产品形态
Django 有一个强大的表单库,可以将表单渲染为 HTML。该库有助于验证提交的数据并将其转换为 Python 类型。
认证
它可以处理用户帐户、用户组、基于 cookie 的用户会话等等。
管理員
它读取模型中的元数据以提供可用于管理网站上的内容的强大界面。
国际化
Django 提供将文本翻译成各种语言的支持,以及针对不同地区的日期、时间、数字和时区的格式设置。
安保防护
Django 提供了针对以下攻击的防护措施:
- 跨站请求伪造(CSRF)
- 跨站脚本
- SQL注入
- 点击劫持
- 远程执行代码
使用 Django 的著名公司
以下是一些正在使用 Django 的公司:
- Bitbucket
- Disqus
- 美国航空航天局
- PBS(公共广播服务)
- Mozilla的
- The Washington Post
- The New York Times
- 洛杉矶时报
- 守护者
- 《国家地理》(National Geographic)
- 探索频道
使用 Django 的缺点
以下是使用 Django 的一些缺点:
- 单个进程无法同时处理多个请求。
- Django 是一个非常庞大的工具。
- 各个组件会一起部署,这可能会造成混乱。
- 要使用 Django,需要了解整个系统。
- 它使Web应用程序组件紧密耦合。
- 您需要为一些小任务进行长时间的编程。



