【1】Django概述
道生一,一生二,二生三,三生万物
无名天地之始,有名万物之母
——老子
python程序web项目开发,是非常重要的一部分,Python为基础的web项目开发的框架有很多,django无疑是最强大web框架之一,也是我们必须掌握的框架之一
框架(framework),就是已经包含了项目结构和部分通用功能的自动化处理工具,主要用于进行项目的快捷和高效的开发
Python是一门编程语言,django只是基于python语言的一门技术,所谓技术,就是使用基础编程语言封装的工具;学语言~是学逻辑学思路,学技术是学应用学操作。
举个简单的例子,学习语言,就类似于学习各种物质的组成成分(是原子组成的还是分子组成的),简单一点铁这种物质是怎么构成的,有什么特性,可以用铁来做什么;学习框架,就类似于学习物质组成的物体的使用,给一个一把铁锤,需要学会使用铁锤,要学会使用铁锤砸核桃,砸墙但是不可以砸人哦。
我们可以看出来,学习语言其实是让我们扩展我们大脑的知识库,是一件非常枯燥的事情;但是学习语言为基础的框架,你就可劲造吧~即时玩坏了大不了从头再来。
一定记住,学习框架,要敢写代码,敢玩代码,敢出错,敢从头再来
通常情况下,没有框架,也可以进行项目开发,但是所有的页面视图、模型数据、映射关系、数据库存储等等都需要手工进行开发和配置,比较耗时耗力,同时对于开发人员对程序语言的掌控非常的高,不然会造成很多潜在的bug,让项目出现不稳定的因素。
使用框架,能在一定程度上提升我们软件开发的时效性,同时框架本身已经考虑到了各种软件使用的特性,如高并发特性、数据安全特性、项目通用功能等等,方便开发人员在掌握一定的语言技术的基础上,可以很快进入项目开发模式。
Django是一个python语言开发的、实现了MVC处理模式的用于动态网站的web框架。
1. 道生一
Django最初被设计的目的,是用来管理劳伦斯出版集团下的一些专门发布新闻动态内容的管理网站的【老大说,公司网站需要,就有了Django】
对于网站内容的管理和发布的操作流程,也称为内容管理系统。
也就是传说在后端快捷开发中流行的CMS系统(内容管理系统)
由于当时劳伦斯出版集团的老大,是比利时的吉普赛爵士吉他手Django Reinhart的粉丝,就以该吉他手的名字来对这个系统软件进行了命名,都说有钱任性~这个世界就是这么现实!
2.一生二
2.1. 正式版发布
Django在劳伦斯出版集团经过几年的完善之后,终于于2005年7月被开源释放,经过很多开发界大咖一起改造并扩展了更加强大的功能之后,于2008年9月份发布了第一个正式版本1.0版本,目前官网最新的版本已经迭代更新到1.11.x版本,我们的教程也会参考1.11版本的官方文档进行讲解
2.2. 核心组件
Django被设计的核心组件主要包含
- 对象关系映射(ORM):以python类的形式定义数据模型,和数据库表关联
- URL分配:使用正则表达式匹配URL,可以设计任意的URL没有特定限定,非常灵活
- 模板系统:强大并且可扩展的模板语言,分隔设计、内容和代码,并且可以继承
- 表单处理:可以方便生成各种表单模型,实现表单的有效性验证
- 解决和处理性能问题的缓存
2.3. 架构模式
Django本身是实现了MVC处理模式的一个框架、
MVC本来的设计思路是利用核心控制器(Controller:C)将我们的视图(View:V)和模型数据(Model:M)关联起来形成一个整体的软件结构,利用模型数据和视图将我们的展示和数据分离,利用控制器将我们的静态数据和动态处理分离的一种设计思想
在Django中,控制器(Controller:C)的部分由框架自行处理,Django则更加注重于处理模型(Model)、模板(Template)、和视图(View),业界也成为MTV模式
| 层次 | 职责 |
|---|---|
| 模型(Model) | 处理与数据相关的所有事务,数据定义、存取数据、数据验证等等 |
| 视图(View) | 处理与数据展示相关的功能,如在网页中或者其他文档中按照什么方式和布局展示数据 |
| 模板(Template) | 视图的一部分动态内容,用于展示处理模型中的数据,是模型和视图的桥梁 |
2.二生三,三生万物
那么,Django能做什么?【这是我们当前必须要明白的一个问题】
第一、Django是一个python语言为基础的web框架
第二、Django可以开发网站应用,如公司门户网站、学校官方网站、新闻动态网站、购物网站等等各种涉及小、中、大型的网站
第三、Django可以用于开发各种B/S结构的系统平台项目,如公司内部数据管理平台、公司工作流程管理平台、内容管理系统平台、OA办公系统平台等等
归根结底,Django是用来进行B/S结构的网络软件开发
关于软件,我想说点什么
软件,是计算机上可以运行的用于进行数据处理的程序
软件根据是否需要使用网络,划分为:单机软件、网络软件
单机软件:不需要联网,在一台PC上直接打开就可以使用的软件,如用于写文档的word,计算机中的画图软件、计算器软件、暗黑破坏神2等等都是单机软件
网络软件:需要在联网的情况下,才能正常的使用软件中的各种功能,如QQ,淘宝,京东等等
网络软件,又划分为C/S结构的软件和B/S结构的软件
C/S结构的软件,主要是指client-server软件,也就是客户端服务器软件,这样的软件在使用的过程中,需要下载软件的安装包,安装到我们的个人PC上,然后打开联网使用,如QQ,英雄联盟等等
B/S结构的软件,主要是指browser-server软件,客户端只需要一个浏览器就可以,通过浏览器访问服务器上的数据,来完成软件的功能,如淘宝、京东类似的网站就是B/S结构的软件,我们在客户端PC上只需要打开浏览器访问指定的URL地址,就可以进行购物等功能的使用了。
那么,接下来,我们就要进入Django了,ARE YOU READY!
【1】Django概述的更多相关文章
- 第一章、Django概述
目录 第一章.Django概述 一.了解软件开发架构 二.HTTP协议 三.响应状态码 四.请求方式 五.基于wsgiref模块 六..动静态网页 七.python三大主流web框架 八.安装Djan ...
- 1. Django概述
1.1 设计模型 Django,但它附带了一个你可以用python代码描述数据库布局的对象关系映射器. 数据模型语法提供了许多丰富的方法来展现你的模型——到目前为止,它解决了多年来数据库模式问题. 简 ...
- django概述
一.django的特点 1.提供一体化的web解决方案,什么叫一体化:mvc 2.等你玩儿牛逼了可以拔插组件,换成自己顺手或者更牛逼的组件
- Django框架使用一 基本介绍,安装和建项篇
Django概述 Django 是在快节奏的编辑环境中开发的,设计使得常见 Web 开发任务快速且容易;它可以编写一个数据驱动的Web应用程序,简单的说就是不需要开发者操作数据库. 设计数据模型 尽管 ...
- Django web 基础
一.Django概述 Django大而全; 创建Django工程:django-admin startproject sitename 创建django之后生成的目录结构如下: Project Pro ...
- Ubuntu下Django初体验(三)——django初体验
Django中的重要概念: 一次web访问的实质: 1. 客户发送http请求到web服务回 2. web服务器返回html页面给客户 Django概述: 1. URL配置 建 ...
- 初始Django
Django概述 Django是什么 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C. Django的主要目标是使得开发复杂的 ...
- py库: django (web框架)
http://www.imooc.com/learn/736 Python-走进Requests库 http://www.imooc.com/learn/790 django入门与实践 http:// ...
- Python学习笔记整理总结【Django】【MVC/MTV/路由分配系统(URL)/视图函数 (views)/表单交互】
一.Web框架概述 Web框架本质上其实就是一个socket服务端,用户的浏览器其实就是一个socket客户端. #!/usr/bin/env python # -*- coding:utf-8 ...
随机推荐
- Android:制作Update.zip升级包 【转】
本文转载自:http://zwkufo.blog.163.com/blog/static/2588251201382293049118/ 很多时候厂商或者三方提供的ROM并不能满足需求,比如系统自带软 ...
- hdu 1698(线段树区间更新)
Just a Hook Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 【BZOJ 1398】 Necklace
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=1398 [算法] 最小表示法 [代码] #include<bits/stdc++ ...
- B1001 狼抓兔子 最小割
题目描述 现在小朋友们最喜欢的"喜羊羊与灰太狼",话说灰太狼抓羊不到,但抓兔子还是比较在行的, 而且现在的兔子还比较笨,它们只有两个窝,现在你做为狼王,面对下面这样一个网格的地形: ...
- SpringCloud学习 什么是微服务(一)
关于SpringCloud,我是看了周老师的<SpringCloud与Docker微服务架构实战>之后才有了一点了解,做下记录,以供后期学习.本人知识有限,如有不对,欢迎批评 1.什么是单 ...
- Redis(五)-数据库
Redis是一个字典结构的存储服务器,而实际上一个Redis实例提供了多个用来存储数据的字典,客户端可以将制定的书存储在哪个字典中,这与关系书库实例中可以i创建多个数据库类似,所以可以将其中的每个字典 ...
- ScreenRecord(about C# winform)
由于一些不得不做的事(哈,有时间再聊),所以就不得不写一个关于录屏的软件了,如此无力的开篇,开始吧. 在网上搜了很多关于录屏的源码,发现都使不了,剧情的需要很难满足.于是突然想到了github上的一个 ...
- 12.0&12.1 Xcode开发包
12.1开发包下载链接 12.0开发包下载链接 12.1(16B91)开发包下载链接 Finder打开后,按command+shift+G前往这个地址: /Applications/Xcode.app ...
- java编译器和java解释器、JVM
作用: JVM:JVM有自己完善的硬件架构,如处理器.堆栈(Stack).寄存器等,还具有相应的指令系统(字节码就是一种指令格式).JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需要生成 ...
- python--7、面向对象
什么是面向对象 对象,即抽象的一类事物中的某个具体的个体.这个世界中存在的一切皆为对象,不存在的也能创建出来. 较之面向过程的区别: 编程的复杂度远高于面向过程,不了解面向对象而立即上手基于它设计程序 ...