组团学

初识Django

阅读 (168511)

一、软件体系架构(B/S、C/S)

1、B/S Browser/Server 浏览器与服务器

B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”的首字母,即服务器的意思。B/S就是“Browser/Server”的缩写,即”浏览器/服务器”模式

B/S结构是随着互联网的发展,web出现后兴起的一种网络结构模式。这种模式统一了客户端,让核心的业务处理在服务端完成。你只需要在自己电脑或手机上安装一个浏览器,就可以通过web Server与数据库进行数据交互

图解
BS6477000.png

2、 C/S Client/Server客户端与服务器端

C是英文单词“Client”的首字母,即客户端的意思,C/S就是“Client/Server”的缩写,即“客户端/服务器”模式

C/S结构是一种软件系统体系结构,也是生活中很常见的。这种结构是将需要处理的业务合理地分配到客户端和服务器端,这样可以大大降低通信成本,但是升级维护相对困难。比如我们手机中安装的微信、qq、王者荣耀等应用程序就是C/S结构

图解

CS.png

3、 B/S结构和C/S结构的区别

  1. 硬件环境不同,C/S通常是建立在专用的网络上,小范围的网络环境。而B/S是建立在广域网上的,适应范围强,通常有操作系统和浏览器就行
  2. C/S结构比B/S结构更安全,因为用户群相对固定,对信息的保护更强
  3. B/S结构维护升级比较简单,而C/S结构维护升级相对困难

二、Django简介

1、概述

Django发布于2005年,是当前Python世界里最负盛名且成熟的网络框架,最初用来制作在线新闻的Web站点

Django是一个用Python编写的开放源代码的Web应用框架(源代码是开源的,遵守BSD版权),采用了MVC的框架模式,也有很多人把它称为MVT(MTV)模式

官方网站:https://www.djangoproject.com/

2、优缺点

  • 优点

    1. 功能完善、要素齐全

      自带大量常用工具和框架(比如分页,auth,权限管理), 适合快速开发企业级网站

    2. 完善的文档

      经过十多年的发展和完善,Django有广泛的实践案例和完善的在线文档。开发者遇到问题时可以搜索在线文档寻求解决方案

    3. 强大的数据库访问组件

      Django的Model层自带数据库ORM组件,使得开发者无须学习SQL语言即可对数据库进行操作

    4. Django先进的App设计理念:

      App是可插拔的,是不可多得的思想。不需要了,可以直接删除,对系统整体影响不大

    5. 自带台管理系统admin

      只需要通过简单的几行配置和代码就可以实现一个完整的后台数据管理控制平台

    6. Django debug信息详尽

      很容易找出代码错误所在

  • 缺点

    1. 大包大揽

      对于一些轻量级应用不需要的功能模块Django也包括了,不如Flask轻便

    2. 过度封装

      很多类和方法都封装了,直接使用比较简单,但改动起来就比较困难

    3. 性能劣势

      与C, C++性能上相比,Django性能偏低,当然这是python的锅,其它python框架在流量上来后会有同样问题

    4. 模板问题

      django的模板实现了代码和样式完全分离,不允许模板里出现python代码,灵活度对某些程序员来说可能不够

三、MVC设计模式

1、概述:

一种软件设计典范,用一种业务逻辑,使数据,界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面与用户交互的同时,不需要重新编写业务逻辑

MVC被独特的发展起来用于映射传统的输入,处理和输出功能在一个逻辑的图形化界面结构中

核心思想:解耦

优点:降低个模块之间的耦合性,方便变更,更容易重构代码,最大程度实现了代码的重用

图解:

image20191213103339449.png

2、MVC编程模式(Model,View,Controller)

  • Model

    用于封装与应用程序的业务逻辑相关的数据及对数据的处理方法,是Web应用程序中用于处理应用程序的数据逻辑部分,Model通常只提供功能性的接口,通过这些接口可以获取Model的所有功能

  • View

    负责数据的显示和呈现,View是对用户的直接输出

  • controller

    负责从用户端收集用户的输入,可以看成提供View的反向功能,主要处理用户交互

四、MVT编程模式

1、概述

与MVC没什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同

2、结构

  • Model

    负责业务对象与数据库(ORM)的对象

  • View

    负责业务逻辑,并在适当的时候调用Model和Template

  • Template

    负责把页面展示给用户

注意:Django中还有一个url分发器(也可以叫做路由),主要用来将一个个URL页面的请求分发给不同的View进行处理,View再调用相应的Model和Template

3、Django运行流程

image20191213103734376.png

需要 登录 才可以提问哦