Django来敲门~第一部分【1.概述】

道生一,一生二,二生三,三生万物 无名天地之始,有名万物之母 ——老子

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!


本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算教程系列

什么是不可变的基础设施?

在传统的可变服务器基础架构中,服务器会不断更新和修改。使用此类基础架构的工程师和管理员可以通过SSH连接到他们的服务器,手动升级或降级软件包,逐个服务器地调整配...

1170
来自专栏原创

Android服务开发经验——优雅地活着 by个推推送

具体来说,就是要做到两点: 1. 尽可能运行 2. 尽可能省电 看似寻常的道理,实现起来还真不容易,下面一个个来看: 尽可能运行 Android系统会根据当前资...

3897
来自专栏玉树芝兰

安装 Python 软件包遇错误,怎么办?

本文通过一个命令行转换 pdf 为词云的例子,给你讲讲 Python 软件包安装遇挫折时,怎么处理才更高效?

1472
来自专栏林喜东的专栏

你的账号安全吗?

账号安全无小事,近些年持续不断爆出的安全事件,有很多低级错误其实都是拥有一个健壮的账号体系可以避免的;多次听闻后曾写一写账号安全相关的东西,但直...

2374
来自专栏程序人生

从开发者的角度看:打包和部署

如今的互联网软件越来越碎片化(micro services),Queue无处不在,服务依赖越来越多,使得软件功能的开发,到软件功能的部署,中间有很长的一段路。这...

3579
来自专栏安恒信息

运维安全中的“福尔摩斯”

引 言 随着互联网技术的发展,信息的交互越来越频繁,随之而来信息的安全、运维操作的合规性等等问题越来越多,其对于企业内部管理来说要求越来越高。2015年某某网...

3507
来自专栏Android机动车

Android模块化开发方案

随着业务的不断发展壮大,移动端所承担的功能也越来越重,特别是代码几易其主之后开始变得杂乱无章,牵一发而动全局的事情时常发生。为了应对团队壮大之后的开发模式,我们...

1482
来自专栏美团技术团队

互联网企业安全之端口监控

背景 外网端口监控系统是整个安全体系中非常重要的一环,它就像眼睛一样,时刻监控外网端口开放情况,并且在发现高危端口时能够及时提醒安全、运维人员做出相应处理。 对...

53215
来自专栏云计算D1net

云数据备份并不是云灾难恢复

云数据备份不是云灾难恢复。不幸的是,供应商的虚假陈述正在推动企业应该如何使用云备份的误解。许多组织正在考虑云备份,因为它消除了基于磁带的备份技术,自动备份,删除...

3906
来自专栏Seebug漏洞平台

Sebug 大牛支招之我是如何在Sebug中杀入前10的?

大家好我是koshell,ID:k0sh1, 在之前的文章中我分享了在web漏洞挖掘中的一些小技巧,这里要补充一下。 注入其实只是众多web入侵手段中的一种,脱...

3767

扫码关注云+社区

领取腾讯云代金券