Python自动化运维入门必看系列之:Django架构介绍
01
“我”为什么需要学习Django呢?
自动化运维简单来看,就是用户在前台页面输入关键信息,后台自动生成所需要的东西或者实现某个需求。最终目标是通过机器去“修理”机器,学习自动化运维到了一定的阶段其实是跟AI离不开的。现在很多的自动化运维基本上都停留在半自动化,等需要真正自动化运维的时候,系统将会越来越复杂,
那良好的交互对于避免复杂是非常重要的。使用Django架站是一个不错的选择,等我们学习Django之后,再修行ansible等自动化软件,会有意外的惊喜喔!
下面我开始结合自己的学习笔记,跟大家分享Django架构的知识吧。(如有错误,请各位老铁指出!)
02
Django架构介绍
Django架站有两种架构,一是MVC架构,而是MTV架构。Django的MTV模式本质上与MVC模式没有什么差别,也是各组件之间为了保持松耦合关系,只是定义上有些许不同.
Django MVC架构
Model(模型)
包含系统中的数据内容,通常以数据库的形式来存储,如果数据有变动,则通知View实时改变现实的内容,还有一些处理数据的程序逻辑也在这里。
View(视图)
创建和用户之间的界面,把用户的请求传给Controller,把按照Controller的要求把来自Model的数据显示出来。
Controller(控制器)
接受外部用户的操作,根据操作访问模型获取数据,并调用“视图”显示这些数据。控制器是将“模型”和“视图”隔离,并成为二者之间的联系纽带。
MVC是众所周知的模式,即:将应用程序分解成三个组成部分:model(模型),view(视图),和 controller(控制 器)。
Django MTV架构
Model(模型)
即数据存取层。 该层处理与数据相关的所有事务: 如何存取、如何验证有效性、包含哪些行为以及数据之间的关系等。
Template(模板)
即表现层。 该层处理与表现相关的决定: 如何在页面或其他类型文档中进行显示。
View(视图)
即业务逻辑层。 该层包含存取模型及调取恰当模板的相关逻辑。 你可以把它看作模型与模板之间的桥梁。
Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template
03
Django特性
采用ORM方式存取数据库的数据,数据库抽象化,网站设计基本不需要使用SQL查询语言。
日后如需更换数据库,无须修改大量程序代码。
用过MVC架构概念把视图和控制逻辑分开,开发人员不用担心网站通信协议的琐碎细节,而是专心于建立网站的功能。
Python语言处理和运算、操作数据库,让网页请求更加客户化,实时响应。
ORM框架
Django采用ORM方式存取数据库的数据。Python程序中不使用SQL指令存取数据,而是以ORM方式存取数据库的数据。 ORM(Object relational Mapper/Mapping),它是以重面向对象的程序设计技术映射后端数据库。即对数据库的操作方式抽象化为统一用Python的数据操作方式,解决底层数据库兼容性的问题。再简单点说,只管Python的数据操作方式,不需要管底层数据库是Oracle/Mysql/Redis等。
04
在Django MTV架构下的网站开发步骤
需求分析不可少。
数据库设计。
了解网站的每一个页面,并设计网页模板(.html)文件。
使用virtualenv创建并启用虚拟机环境。
使用pip install 安装django。
使用django-admin startproject 生成项目。
使用python manage.py startapp 创建app。
创建templates文件夹,并把所有网页模板(.html)文件都放在此文件夹中。
创建static文件夹,并把所有静态文件(图像文件、CSS文件及.js等)都放在此文件夹中。
修改settings.py,把相关的文件夹加入,也把生成的app名称加入INSTALLED_APPS序列中。
编辑models.py,创建数据库表格。
编辑views.py,先import在models.py中创建的数据模型。
编辑admin.py,把models.py中定义的数据模型加入,并使用admin.site.register注册新增的类,让admin界面可以处理数据库内容。
编辑urls.py,先import在views.py中定义的模块。
编辑urls.py,创建网站和views.py中定义的模块的对应关系。
执行python manage.py makemigrations。
执行python manage.py migrate。
执行python manage.py runserver测试网站。
长按二维码了解更多python自动化运维