“我”为何须要学习Django呢?html
自动化运维简单来看,就是用户在前台页面输入关键信息,后台自动生成所须要的东西或者实现某个需求。最终目标是经过机器去“修理”机器,学习自动化运维到了必定的阶段实际上是跟AI离不开的。如今不少的自动化运维基本上都停留在半自动化,等须要真正自动化运维的时候,系统将会愈来愈复杂,python
那良好的交互对于避免复杂是很是重要的。使用Django架站是一个不错的选择,等咱们学习Django以后,再修行ansible等自动化软件,会有意外的惊喜喔!sql
下面我开始结合本身的学习笔记,跟你们分享Django架构的知识吧。(若有错误,请各位老铁指出!)
数据库
02django
Django架构介绍后端
Django架站有两种架构,一是MVC架构,而是MTV架构。Django的MTV模式本质上与MVC模式没有什么差异,也是各组件之间为了保持松耦合关系,只是定义上有些许不一样.架构
Django MVC架构app
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测试网站。