Django教程:功能特性 Archi建筑与历史

⚡ 智能摘要

Django 是一个免费的开源软件。 Python 基于模型-视图-模板模式构建的 Web 框架,通过可重用的组件、自动管理界面和内置设计,能够快速开发安全、可扩展的数据库驱动型网站。

  • 🔘 框架: Django 是一个高级框架 Python 用于快速构建复杂的、数据库驱动的 Web 应用程序的框架。
  • ☑️ 结 构: 模型-视图-模板(MVT)模式让 Django 能够管理控制器,并将数据、逻辑和表现分离。
  • 电池包括: 内置的管理员、身份验证、表单和国际化功能,省去了大部分重复性的设置工作。
  • 🛠️ 安全性: 默认安全措施可阻止 CSRF、跨站脚本攻击、SQL 注入和点击劫持攻击。
  • 🧪 规模: InstagramPinterest、Mozilla 和 Disqus 都依赖 Django 来处理非常高的流量。
  • 🤖 AI: Django 将机器学习模型作为 API 提供,而 GitHub Copilot 等助手可以加快后端编码速度。

Django 初学者教程

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质地

Django的 Archi质地

MVC模式

在讨论提供用户界面(Web 或桌面)的应用程序时,我们通常会提到 MVC 架构。MVC 模式基于模型(Model)、视图(View)和控制器(Controller)三个部分。

型号 定义数据结构并负责查询数据库。

查看 定义应呈现什么数据并返回 HTTP 响应。

控制器 是应用程序中处理用户交互的部分。

Django MVC-MVT 模式

模型-视图-模板(MVT)与模型-视图-框架(MVC)是不同的概念。这两种架构模式的主要区别在于,Django 本身管理控制器部分(控制模型和视图之间交互的软件代码)。模板是一个 HTML 文件,其中混合了一个 Django 模板语言文件,也称为 DTL。

下图展示了 MVT 模式的所有组件如何相互交互以满足特定的用户请求。

Django的 Archi架构:MVC 和 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(公共广播服务)
  • Pinterest
  • Instagram
  • Mozilla的
  • The Washington Post
  • The New York Times
  • 洛杉矶时报
  • 守护者
  • 《国家地理》(National Geographic)
  • 探索频道

使用 Django 的缺点

以下是使用 Django 的一些缺点:

  • 单个进程无法同时处理多个请求。
  • Django 是一个非常庞大的工具。
  • 各个组件会一起部署,这可能会造成混乱。
  • 要使用 Django,需要了解整个系统。
  • 它使Web应用程序组件紧密耦合。
  • 您需要为一些小任务进行长时间的编程。

常见问题

Django 主要是一个后端框架,但由于其模板层负责渲染 HTML,因此常被描述为全栈框架。它管理服务器端逻辑、数据库、路由和安全,而模板则负责浏览器端的呈现。

Django 是一个功能齐全的全栈框架,内置 ORM、管理面板和身份验证功能。Flask 则是一个轻量级的微框架,它保持极简风格,并依赖扩展来实现相同的功能,从而为开发者提供更大的手动控制权。

Django ORM(对象关系映射器)允许您将数据库表定义为 Python 分类并使用以下方式查询它们 Python 它使用代码而非原始 SQL。它支持以下数据库: PostgreSQL, MySQL, SQLite和 Oracle.

在命令行运行 `python -m django --version`,或者打开一个 Python 在 shell 中运行 `import django`,然后运行 ​​`print(django.get_version())`。两者都会显示已安装的 Django 版本号。

中间件是一系列钩子,用于全局处理每个请求和响应。Django 使用中间件来处理会话、身份验证、CSRF 保护和安全标头,每个中间件都会在视图执行前后按顺序运行。

工作知识 Python 此外,还需要掌握一些基本的 Web 概念,例如 HTTP、HTML 和数据库。理解面向对象编程能让你更容易学习 Django 模型和基于类的视图。

是的。Django 通常通过视图或 Django REST Framework 来部署机器学习模型,并将预测结果作为 API 端点公开。训练好的模型在启动时加载一次,并将推理结果返回给 Web 或移动客户端。

GitHub Copilot 和类似的 AI 助手可以自动补全 Django 模型、视图, URL 模式和测试可以搭建重复性样板代码的框架。它们能加快开发速度,但生成的代码始终需要进行安全性和正确性审查。

总结一下这篇文章: