在学习Django之前,让我们了解一下:
什么是Web框架?
Web框架是一个代码库,可帮助您构建灵活,可伸缩和可维护的代码。 动态网站,Web应用程序和Web服务。 不同的Web框架包括适用于PHP的Zend,适用于Ruby的Ruby on Rails等。
什么是Django?
Django是Python的网络开发框架,它提供了一种用于快速有效地网站开发的标准方法。 它可以帮助您帮助构建和维护高质量的Web应用程序。 它使您可以使开发过程顺利且节省时间。
这是一个高级Web框架,可以执行快速开发。 该Web框架的主要目标是创建复杂的数据库驱动的网站。
为什么选择Django? 主要优势
这里是使用Django的主要原因:
- Django易于设置和运行。 它提供了多种入门选项
- 它为管理活动提供了现成的用户界面
- 它通过使用其内置的国际化系统来启用多语言网站
- 帮助您快速满足庞大的流量需求
- Django用于构建所有类型的内容管理系统,社交网络以及科学计算平台。
- Django可帮助您提供端到端应用程序测试
- 帮助您使用HTML输出记录API
- REST框架对多种身份验证协议提供了丰富的支持
- 权限和限制政策
- 它广泛用于限制单个用户的API请求的速率。
Django的历史
- 该项目由Adian Holovaty和Simon Willison于2003年在劳伦斯日报-世界报纸上作为内部项目启动
- 它于2005年7月发行,名称为“ Django”,以爵士吉他手Django Reinhard的名字命名
- 在2008年6月,宣布Django软件基金会(DSF)将维护Django。
- Django 1.1版本于2009年7月29日发布,具有诸如聚合,基于事务的测试之类的功能。
- Django 1.2版本于2010年5月17日发布。此版本提供了多个数据库之类的功能,电子邮件后端的实现以及对会话和cookie的改进。
- 2011年3月23日,引入了1.3版本,该版本具有基于类的视图,静态文件等功能
- 2012年3月23日,发布了1.4版本,其中包含时区和浏览器内测试等新功能
- 在2013年2月26日,1.5版随附Python 3支持和可配置的用户模型功能。
- 2013年11月6日,1.6版附带了数据库事务管理和连接池功能。
- 2014年9月2日。1.7版具有新功能,例如应用程序负载,迁移和配置
- 2015年4月1日起,为多个模板引擎提供了本机支持。
- 2015年12月1日,引入了1.9版本的自动密码验证功能。
- 2016年8月1日,在1.10版本中启动了PostgreSQL的全文搜索。
- 2017年4月4日,1.11版成为支持Python 2.7的最后一个版本
- 自2017年12月2日起,版本2.0成为第一个仅Python 3发布版本。
- 2018年8月1日,版本2.1附带了模型“查看”权限支持功能。
Django的功能
- 帮助您定义应用程序中URL的模式
- 简单但功能强大的URL系统
- 内置认证系统
- 面向对象的编程语言数据库,可提供一流的数据存储和检索
- 自动管理界面功能允许添加,编辑和删除项目。您可以根据需要自定义管理面板。
- 缓存框架带有多种缓存机制。
Django的特征
- 松耦合-Django帮助您使堆栈中的每个元素独立于其他元素。
- 更少的代码-确保有效的开发
- 不重复-一切都应该在一个地方开发而不是重复
- 快速开发-Django提供了快速而可靠的应用程序开发。
- 一致的设计-Django保持整洁的设计,并易于遵循最佳的Web开发实践。
Django体系结构:MVC和MVT
MVC模式:
在谈论提供UI(Web或桌面)的应用程序时,我们通常谈论MVC架构。 MVC模式基于模型,视图和控制器。
该模型定义了数据结构,并负责查询数据库。
视图定义了应显示的数据并返回HTTP响应。
控制器是应用程序中处理用户交互的部分。
Django MVC-MVT模式
与MVC相比,模型视图模板(MVT)是一个不同的概念。 这两种架构模式之间的主要区别在于Django本身管理Controller部件(控制模型与视图之间的交互的软件代码)。 模板是一个HTML文件,与Django模板语言文件(也称为DTL)混合在一起。
下图显示了MVT模式的所有组件如何相互交互以特定于用户请求进行服务。
如上图所示,用户向Django请求资源。 Django充当控制器,并检查URL中的可用资源。
如果URL映射,则将调用一个与模型和模板交互的视图。 然后,Django响应用户并发送模板作为响应。
Django的组件
形成:
Django有一个功能强大的表单库,可以将表单呈现为HTML。 该库有助于验证提交的数据并将其转换为Python类型。
认证方式:
它处理用户帐户,组,基于cookie的用户会话等。
管理:
它读取模型中的元数据,以提供可用于管理站点内容的健壮界面。
国际化:
Django提供了将文本翻译成各种语言,日期,时间,数字和时区的特定于区域设置的格式的支持。
安全:
Django提供了针对以下攻击的防护措施:
- 跨站请求伪造(CSRF)
- 跨站脚本
- SQL注入
- 点击劫持
- 远程执行代码
著名公司使用Django
以下是使用Django的公司:BitBucketDISQUSNASAPBS (Public Broadcasting Service)PinterestInstagramMozillaThe Washington PostNY TimesLA TimesThe Guardian National GeographicDiscovery Channel
使用Django的缺点
- 一个进程不能同时处理多个请求。
- Django是非常单一的工具。
- 组件部署在一起会造成混乱。
- 在Django上工作所需的完整系统知识
- 使Web应用程序组件紧密耦合
- 您需要对次要任务进行冗长的编程。
摘要
- Django是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的最大缺点是它不能同时处理多个请求。
阅读:
190