2005年发布,采用python 语言编写的开源框架
早期的时候Django主做新闻和内容管理的
一个重量级的Python Web 框架,Django配备了常用的大部分组件

一.路由

  1. URL 解析
  2. 原生HTML模板系统
  3. 数据库连接和ORM数据库管理
  4. ORM模型系统
  5. 电子邮件发送系统
  6. 电子邮件发送系统
  7. CSRF 跨站点请求伪造的保护
  8. 表单验证
  9. 数据库后台管理系统
  10. 自带强大的后台管理功能

二.Django 的用途

  • 网站后端开发
  • 微信公众号后台开发
  • 微信小程序后台开发
  • 基于HTTP/HTTPS 协议的后台服务器开发
  • 在线语音/图像识别服务器
  • 在线第三方验证服务器等等

Django,发音为[`dʒæŋɡəʊ],是用python语言写的开源web开发框架,并遵循MVC设计。劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,于2005年7月在BSD许可证下发布。这个名称来源于比利时的爵士音乐家DjangoReinhardt,他是一个吉普赛人,主要以演奏吉它为主,还演奏过小提琴等。由于Django在近年来的迅速发展,应用越来越广泛,被著名IT开发杂志SDTimes评选为2013SDTimes100,位列"API、库和框架"分类第6位,被认为是该领域的佼者。Django的主要目的是简便、快速的开发数据库驱动的网站。它强调代码复用,多个组件可以很方便的以"插件"形式服务于整个框架,Django有许多功能强大的第三方插件,你甚至可以很方便的开发出自己的工具包。这使得Django具有很强的可扩展性。它还强调快速开发和DRY(DoNotRepeatYourself)原则。


三.为什么是Django?

使用Django,您可以在几个小时内将Web应用程序从概念到启动。Django处理了Web开发的大部分麻烦,因此您可以专注于编写应用程序,而无需重新发明轮子。它是免费和开源的。

Django特点:

  1. 快:Django旨在帮助开发人员尽快将应用程序从概念到完成。
  2. 完美功能:Django包含许多附加功能,可用于处理常见的Web开发任务。如用户身份验证内容管理、后台管理等更多任务。
  3. 安心安全: Django 非常重视安全性,并帮助开发人员避免许多常见的安全错误,例如 SQL 注入、跨站点脚本、跨站点请求伪造和点击劫持。其用户身份验证系统提供了一种安全的方式来管理用户帐户和密码。
  4. 扩展性强: 互联网上一些最繁忙的站点使用 Django 的能力来快速灵活地扩展以满足最繁忙的流量需求。
  5. 令人难以置信的多才多艺: 公司、组织和政府已经使用 Django 构建了各种各样的东西——从内容管理系统到社交网络再到科学计算平台。

常用的Web应用工具:

        1.身份验证
        2.缓存
        3.分页
        4.静态文件管理
        5.数据验证
        6.表单验证
        7.电子邮件发送系统

Django应用:

  1. 网站后端开发 :内容管理系统(博客)、企业内容系统(ERP&CRM、招聘管理) 
  2. 微信公众号、小程序后台开发 
  3. 在线语音、图像识别服务器 

四.Django框架遵循的MVC设计。(MVT)

M:Model:模型, 和MVC中M功能相同,和数据库进行交互。

V:View:视图, 和MVC中C功能相同,接收请求,进行处理,与M和T进行交互,返回应答。

T:Template:模板, 和MVC中V功能相同,产生html页面。


五.MVC和MVT模式

  1. MVC最初是由施乐公司旗下的帕罗奥多研究中心中的一位研究人员给 smalltalk语言发明的一中软件设计模式。是一种程序设计模式,其核心思想是分工、解耦、让不同功能的代码块之间降低耦合,增强代码的可扩展性和可移植性。
  2. MVC的全拼为Model-View-Controller,最早由TrygveReenskaug在1978年提出,是施乐帕罗奥多研究中心(Xerox PARC)在20世纪80年代为程序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输出设备的出现,开发人员只需要将精力集中在业务逻辑的分析与实现上。后来被推荐为Oracle旗下Sun公司Java EE平台的设计模式,并且受到越来越多的使用ColdFusion和PHP的开发者的欢迎。
  3. 现在虽然不再使用原来的分工方式,但是这种分工的思想被沿用下来,广泛应用于软件工程中,把软件系统分为三个基本部分:模型(Model)、视图(View)和控制器(Controller) ,是一种典型并且应用广泛的软件架构模式。后来,MVC的思想被应用在了Web开发方面,被称为Web MVC框架。
  4. MVC框架的核心思想是:解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。
  5. 当前主流的开发语言如Java、PHP、Python中都有MVC框架。
  6. MVC的产生理念: 分工。让专门的人去做专门的事。
  7. MVC的核心思想: 解耦。

M:Model:模型, 和MVC中M功能相同,和数据库进行交互。

V:View:视图, 和MVC中C功能相同,接收请求,进行处理,与M和T进行交互,返回应答。

T:Template:模板, 和MVC中V功能相同,产生html页面。

Django的MVT模式

  • M全拼为Model,与MVC中的M功能相同,负责和数据库交互,进行数据处理。
  • V全拼为View,与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
  • T全拼为Template,与MVC中的V功能相同,负责封装构造要返回的html。

Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,
view再调用相应的Model和Template。


六.Django框架图示

Django框架 1相关推荐

  1. Django框架之第二篇

    Django框架之第二篇 一.知识点回顾 1.MTV模型 model:模型,和数据库相关的 template:模板,存放html文件,模板语法(目的是将变量如何巧妙的嵌入到HTML页面中). view ...

  2. Windows上python开发--2安装django框架

    Windows上python开发--2安装django框架 分类: 服务器后台开发2014-05-17 21:22 2310人阅读 评论(2) 收藏 举报 python django 上一篇文章中讲了 ...

  3. Python技术学习之Django框架设计思想

    Python是目前比较流行的计算机编程语言,据用丰富和强大的库,被称为胶水语言,能够把用其他语言制作的各种模块很轻松地联结在一起. Python功能强大,用途广泛,可广泛应用于云计算.web开发.科学 ...

  4. django框架使用mysql报错,及两种解决方法

    1.django框架 settings.py文件中部分代码: DATABASES = {# 'default': {# 'ENGINE': 'django.db.backends.sqlite3',# ...

  5. django框架--路由系统

    目录 一.路由系统理解 二.路由系统功能划分 三.路由表创建 创建工具 二级路由 路由别名 动态路由及重定向 四.自定义错误页面 五.图示路由系统在框架中的定位 六.路由系统的进阶想法 一.路由系统理 ...

  6. Python3搭建Django框架浅析

    前言 Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的网站和APP都基于Django. Django 是一个开放源代码的 Web 应用框架,由 Pyt ...

  7. Django框架学习索引

    索引目录 1.Django介绍与安装 2.Django流程及模式 3.Django基本配置 4.Django模板(Templages) 1.Django的介绍和安装 3.Django框架模式 4.数据 ...

  8. Django 框架入门篇(安装与创建项目)

    什么是Django框架? 官方定义:Django是一个高级Python Web框架,鼓励快速开发和简洁实用的设计.它由经验丰富的开发人员构建,可以解决大部分Web开发的麻烦,因此您可以专注于编写应用程 ...

  9. 第九章 Django框架——csrf请求伪造和csrf_token使用

    第九章 Django框架--csrf请求伪造和csrf_token使用 一.csrf请求伪造 二.csrf_token使用 三.简单的csrf_token应用 四.Ajax使用csrf_token 一 ...

  10. Python Django框架入门第一课

    Python Django框架入门 1.Django简介 Django使用python开发的一个免费的Web框架,几乎囊括了Web应用的方方面面,用于快速搭建高性能.优雅的网站. 2.配Django运 ...

最新文章

  1. 程序员被辞 12 天,前领导要求回公司解释代码,结果懵了…
  2. AI智商评测标准专家研讨会邀请,2018年12月20日北京
  3. 《Ext JS权威指南》节选:在Visual Studio中实现Ext JS智能提示
  4. 【Android WebSocket】Android 端 WebSocket 基本用法 ( 下载 Java-WebSocket源码 | 导入 Java-WebSocket-1.5.2 工程作为依赖 )
  5. jsencrypt代码分析——openssl的rsa加密解密在js的实现
  6. python能做什么excel-python处理excel的优势是什么
  7. 深入游戏变速底层原理以及内核变速的实现
  8. Mybatis中取 Oracle自增序列 重复值
  9. 技术团队如何高效开会
  10. 计算机科学与技术培养计划,计算机科学与技术专业培养方案(2017版).PDF
  11. 台式机关闭计算机时没有待机,台式机设置休眠的方法
  12. 机会总是留给有准备的人 —— 从裁缝到码农
  13. 用C语言写一个图书管理系统大作业
  14. 深度学习与多层神经网络的区别
  15. 用python实现植物大战僵尸(游戏截图+动态演示+源码分享)
  16. 黄海导航软件测试,测试软件平台环境一览
  17. 基于vue3的Element-Plus问题汇总
  18. PMP项目管理学习心得
  19. 转载:如何更加科学理性地认识功率曲线
  20. com.oracle:ojdbc7:jar:12.1.0.2 was not found in

热门文章

  1. 路由器交换机:机试练习
  2. k8s 发布项目实现 nginx 和 tomcat 动静分离(2)
  3. Blender 制作Lowpoly 宝剑
  4. 今天,我开始新的生活
  5. 地下管廊建设市场深度分析及发展研究预测报告
  6. shell二之条件检测与数学运算
  7. PLC上位机以太网通信的C#实现-基恩士
  8. 2016-03-02 积累名句 常读常熟
  9. 超市彩色价签打印,盘点机PDA与蓝牙便携打印机的设置和连接
  10. 为什么我说你不爱我了!