Django 初学者教程:功能, Archi建筑与历史
Django 教程摘要
本 Django 教程从头开始介绍所有基础主题。在本教程中,您将学习 Django 是什么、Django 历史、Django 功能、Django 框架的特点、Django 的组件、优点和缺点等概念。
在学习Django之前我们先了解一下:
什么是 Web 框架?
Web 框架是一个代码库,可帮助您构建灵活、可扩展且可维护的动态网站、Web 应用程序和 Web 服务。不同的 Web 框架包括 Zend for PHP、 Ruby on Rails 对于 Ruby 等
什么是Django?
Django的 是一个 Web 开发框架 Python 它为快速有效的网站开发提供了标准方法。这个高级 Web 框架的主要目标是创建复杂的数据库驱动网站。它可以帮助您构建和维护高质量的 Web 应用程序。它使您能够使开发过程顺畅且节省时间,从而实现快速开发。
为什么选择 Django?Django 的主要优势
以下是 Django 的主要优点:
- Django 易于设置和运行。它提供了多种入门选项
- 它为管理活动提供了一个现成的用户界面
- 它利用其内置的国际化系统实现多语言网站
- 帮您快速满足海量流量需求
- Django 用于构建所有类型的内容管理系统、社交网络以及科学计算平台。
- Django 帮助您提供端到端应用程序测试
- 帮助您使用 HTML 输出记录您的 API
- REST Framework 对多种身份验证协议提供丰富的支持
- 权限和限制策略
- 它广泛用于限制单个用户的 API 请求速率。
姜戈的历史
年 | 里程碑 |
---|---|
2003 | 该项目由 Adian Holovaty 和 Simon Willison 发起,是《劳伦斯世界日报》的一个内部项目 |
2005 年 7 月 | 该专辑于 2005 年 XNUMX 月以“Django”的名字发行,以爵士吉他手 Django Reinhard 的名字命名 |
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版本自带DB事务管理,连接池功能。 |
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的详细架构:
MVC模式
当谈论提供 UI(Web 或桌面)的应用程序时,我们通常会谈论 MVC 架构。MVC 模式基于模型、视图和控制器。
- 型号 定义数据结构并负责查询数据库。
- 首页 定义应呈现什么数据并返回 HTTP 响应。
- 控制器 是应用程序中处理用户交互的部分。
Django MVC-MVT 模式
模型-视图-模板 (MVT) 与 MVC 是不同的概念。这两种架构模式的主要区别在于 Django 本身管理控制器部分(控制模型和视图之间交互的软件代码)。模板是一个 HTML 文件,其中混合了 Django 模板语言文件(也称为 DTL)。
下图显示了 MVT 模式的所有组件如何相互作用以满足特定用户请求。
如上图所示,用户向 Django 请求资源。Django 充当控制器并检查 URL 中的可用资源。
如果 URL 映射,则调用与模型和模板交互的视图。然后 Django 响应用户并发送模板作为响应。
现在,在这个 Django 初学者教程系列中,我们将学习 Django 的组件。
Django 的组件
表单
Django 有一个强大的表单库,可以将表单渲染为 HTML。该库有助于验证提交的数据并将其转换为 Python 类型。
认证
它处理用户帐户、群组、基于 cookie 的用户会话等。
管理員
它读取模型中的元数据以提供可用于管理网站上的内容的强大界面。
国际化
Django 支持将文本翻译成各种语言,以及特定区域设置的日期、时间、数字和时区格式。
安全性
Django 提供了针对以下攻击的防护措施:
- 跨站请求伪造(CSRF)
- 跨站脚本
- SQL注入
- 点击劫持
- 远程执行代码
使用 Django 的著名公司
以下是使用 Django 的公司:
- 到位桶
- DISQUS
- 美国航空航天局
- PBS(公共广播服务)
- Mozilla的
- The Washington Post
- 纽约时报
- 洛杉矶时报
- 卫报 国家地理
- 探索频道
使用 Django 的缺点
- 一个进程无法同时处理多个请求。
- Django 是一个非常庞大的工具。
- 组件一起部署可能会造成混乱。
- 需要了解使用 Django 所需的完整系统知识
- 使 Web 应用程序组件紧密耦合
- 您需要为一些小任务进行长时间的编程。
总结
- Django 是一个 Web 开发框架,用于 Python 它为快速有效的网站开发提供了一种标准方法。
- Django 是由 Adian Holovaty 和 Simon Willison 于 2003 年在 Lawrence Journal-World 报纸内部启动的项目
- Django 帮助您使用 HTML 输出记录您的 API。
- Django 允许您根据需要自定义管理面板。
- Django 帮助您使堆栈中的每个元素独立于其他元素。
- MVC与MVT架构模式的主要区别在于Django本身管理Controller部分。
- Django 架构的基本组件是:表单、身份验证、管理、国际化、安全。
- Bitbucket、DISQUS、Nasa、Pinterest、Instagram、Mozilla 等都使用 Django
- Django 最大的缺点是它不能同时处理多个请求。