浅析Web开发工具Django的MVC架构

来源 :品牌与标准化 | 被引量 : 0次 | 上传用户:Javayuyu
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  【摘要】 本文深入浅出地分析了网站制作工具Django的MVC架构思想,并结合示例进行了说明,对进一步深入理解并运用dango解决实际问题提供了借鉴和帮助。
  【关键词】 Django;MVC;架构
  【DOI编码】 10.3969/j.issn.1674-4977.2021.06.039
  Analysis on the MVC Architecture of Web Development Tool Django
  SUN Jian-jun,LI Qi,LV Qiang
  (Shaanxi Institute of Standardization,Xi-an 710000,China)
  Abstract: This article analyzes the MVC architecture ideas of Django,a website production tool,in a simple and simple way,and explains it with examples,which provides reference and help for further understanding and using dango to solve practical problems.
  Key words: Django;MVC;architecture
  Django是一个基于Python语言的WEB开发工具,2005年作为一个开源项目发布。目前,世界上许多的公司和组织已经将Django应用在自己开发的项目中。
  Django运行在服务器端主要用于Web网站的制作。其开发框架由数据、呈现、控制三部分构成,被称为MVC架构。这种架构的优点在于,可在其数据、呈现、控制部分分别进行独立开发、维护,使得系统的灵活性、协调性显著增强。
  1 MVC架构
  MVC是Model-View-Controller的缩写,Model表示模型,View称为呈现方式,Controller是控制器。三者共同构成了一个既彼此独立又相互协同的有机整体,这就是通常所说的MVC架构。在MVC架构下,操作是在View上进行,其响应就会被传送给Controller,而Controller根据业务逻辑去操作Model的数据,而最终数据的变化会反映到View。
  <E:\品牌与标准化\2021\6\图片\QQ图片20211012164245.png>
  图1 Django的MVC架构图
  图1中通过模型M,Django可以对数据库进行操作,需要在模型中按照Django的方式定义能够反映数据库中表结构的类来完成,类属性对应于数据库中表的字段。便于实现类与表的关联。Django开发的通用且简单的数据库接口,可以方便地配置并连接诸如Mysql、Oracle等多种数据库系统。Django提供了数据查询、修改、删除等一系列常用功能,实现对数据库的操作。
  控制逻辑C是Python系列函数。是Django的处理和控制核心。浏览器上显示的动态页面,需要在后台也即服务器端通过大量的控制和数据处理工作来完成,基于Python语言的Django,具有实现复杂逻辑控制和强大的数据处理能力。
  在看呈现方式V,浏览器上能够解释的是标准的Html静态文本文件,但能够体现动态特征的Html文件,需要在服务器端进行处理。Django以Html(不限于)为基础并进行了扩充,增加了变量替换和逻辑控制等功能,实现了页面的动態化,页面最终由Django渲染后,形成标准的Html文本,交由浏览器解释,实现了动态页面的显示。
  整个框架工作流程是,从客户端的浏览器上发出页面请求,服务器端接收到请求,交由控制器C,C使用在M中定义并获取的数据进行处理,利用V中定义的模板文件(以Html为基础的文本文件),生成标准的Html文件后,传送至客户端的浏览器上进行显示。
  Django在服务器端构建了3个重要模块,它们均为Python模块,这些模块分别对应了架构中的MVC。Models.py模块用一个Python类来描述数据表,并实现与数据库系统的连接,对应于MVC中的M;Views.py模块包含了页面的业务和控制逻辑,在Django中又称为视图,对应于MVC中的C;Template模板系统,包含了基于HTML格式的文本文件,经渲染后,在客户端浏览器上显示页面,对应于MVC中的V。
  2 示例
  1)配置数据库
  Django可以配置并连接多种数据库系统,数据库名在配置数据库系统时指定。以下在M(模型)中定义一个公司类,类名为company。
  From django db import models
  Class company(models.Model):
  Name=models.CharField(max_length=30)
  address=models.CharField(max_length=50)
  city=models.CharField(max_length=60)
  province=models.CharField(max_length=30)
  从django.db中导出模型models,使用models中字符串类型定义类的各属性。在与配置的数据库同步后,Django将定义的类转化为一个数据库下的表。以下用类的objects.create方法为表创建一条记录,并保存至数据库中。
  p=company.objects.create(name='某公司',address='某街某号',city='某市',province='某省或自治区')   2)定义模板文件
  在V(模板)中定义一个文件,称为模板文件,取名ep.html。
  <html>
  <head><title>示例</title></head>
  <body>
  <p>公司名称:{{name}}</p>
  <p>公司地址:{{address}}</p>
  <p>所在城市:{{city}}</p>
  <p>所在省或自治区:{{province}}</p>
  </body>
  </html>
  {{ }}是Django的占位符,占位符内是变量名,变量经赋值后,替代占位符。
  3)编制控制流程
  定义一个Python函数:取名example.作为C(控制器)中的方法。
  from django.template.loader import get_template
  from django.template import Context
  from django.http import HttpResponse
  Def example(request):
  t=get_temlate(ep)
  c=context({'name':p.name,'address':p.address,'city':p.city,'province':p.province})
  html=t.render(c)
  return httpResponse(html)
  其中,get_temlate()是Django的函数,从django.template.loader程序包中导出,作用是将模板文件转化为模板对象。
  t=get_temlate(ep)
  将已定义的ep模板文件作为参数传入,生成模板对象t。Context()函数从django.template程序包导出,生成上下文对象。
  c=context({'name':p.name,'address':p.address,'city':p.city,'province':p.province})
  定义一个python字典,为变量赋值,并将字典作为context()函数的参数,生成上下文对象c。
  html=t.render(c)
  調用模板对象t的方法render(),以上下文对象作为参数,对模板文件ep进行渲染,实际上是用字典中定义的各项去替换文档中的占位符并给变量赋值。渲染后的文件为标准的Html文件。
  <html>
  <head><title>示例</title></head>
  <body>
  <p>公司名称:某公司</p>
  <p>公司地址:某街某号</p>
  <p>所在城市:某市</p>
  <p>所在省或自治区:某省或自治区}</p>
  </body>
  </html>
  最后将该文本用httpResponse()返回给浏览器,将会在页面上看到以下信息:
  公司名称:某公司;公司地址:某街某号;所在城市:某市;所在省或自治区:某省或自治区。
  3 结语
  MVC是当今Web领域网站制作类工具最为流行和广泛使用的开发架构。以上示例较为具体地说明在架构下的开发和工作过程,这对进一步深入理解并运用django解决实际问题提供了借鉴和帮助。
  【作者简介】,
  孙建军,男,高级工程师,研究方向为信息化应用。
  李琪,男,工程师,硕士,研究方向为网络与信息安全。
  吕强,男,高级工程师,硕士,研究方向为统一社会信用代码及电子政务信息化。
其他文献
【摘要】 随着我国经济的不断发展,国有企业内部审计工作的改革也在不断推进。本文基于内部控制标准化发展的视角下,对目前国有企业内部审计存在的问题进行探讨,并根据两者的关系,提出国有企业审计工作的标准优化措施。  【关键词】 国有企业;内部控制;审计;标准化;策略  【DOI编码】 10.3969/j.issn.1674-4977.2021.06.033  Research on Optimizati
【摘要】 商标受理窗口作为商标注册便利化改革重要举措之一,方便商标申请人就近办理商标业务。本文对辽宁省内商标受理窗口工作进行调研,将窗口服务中存在的问题进行分析,并结合工作实际提出改进建议,以期进一步完善窗口服务工作。  【关键词】 商标;窗口服务;便利化  【DOI编码】 10.3969/j.issn.1674-4977.2021.06.034  Problems and Thoughts in
【摘要】 烟叶作为我国农村的主要经濟性作物之一,是农业经济发展的重要组成部分,在农业以及市场经济上有着重要地位。烟叶质量评价指标体系的构建和研究是烟草行业研究的方向和目标,我国烟草行业烤烟标准的修订也对卷烟工业原料可用性有着至关重要的意义,烟草质量评价指标体系的建设便成了现在检验烟草质量最为有效的办法。  【关键词】 烟叶质量;评价指标  【DOI编码】 10.3969/j.issn.1674-4
【摘要】 本文旨在通过阐述国内外现阶段化妆品原料现状,以及国家对化妆品功效评价的监管要求,探讨化妆品及原料功效评价研究的前景,提出未来化妆品功效宣称的评价研究将成为检验检测机构重点关注的领域。  【关键词】 化妆品;原料;功效评价  【DOI编码】 10.3969/j.issn.1674-4977.2021.06.032  Prospects on Efficacy Evaluation Rese
【摘要】 本文分析了我国城市公共消防设施存在的问题,以及影响城市消防设施建设的各种因素,并且对强化城市公共消防设施建设提出一些对策,以供参考。  【关键词】 公共消防设施;消防救援;消防制度  【DOI编码】 10.3969/j.issn.1674-4977.2021.06.047  On the Construction of Urban Public Fire Fighting Facilit
【摘要】 随着信息技术的快速发展,人工智能的出现为会计信息化带来新的机遇和挑战,人工智能技术在会计工作中的应用,必将大大提升会计工作效率以及会计信息的准确程度,为企业会计信息化的发展提供强劲的助力。但是,人工智能仍处在发展更新的阶段,不可避免地出现硬件和软件等技术风险以及电子信息化时代共有的数据安全风险等问题。企业财务部门在将人工智能引入到会计信息采集、处理和储存的过程中,必须采取一定措施规避风险
【摘要】 虽然机动车为人们的日常出行提供了极大地便利,但是机动车辆的尾气排放,也对城市空气产生了污染,对城市居民的身体健康产生影响,对城市的可持续发展产生了损害。基于此,本文重点针对城市机动车尾气治理进行了详细的分析,旨在合理控制城市中的机动车数量,优化城市的交通运输能力,为城市居民提供一个相对理想的居住环境。  【关键词】 机动车;尾气;大气污染;治理  【DOI编码】 10.3969/j.is
【摘要】 “三合一”场所内发生火灾的频率大幅度提升,对人民群众的生命财产安全造成了很大的影响,为了减少“三合一”场所内存在的安全隐患,本文通过分析“三合一”场所的特点及其可能存在的火灾隐患,寻找解决“三合一”场所火灾隐患的对策。  【关键词】 “三合一”场所;火灾隐患;火灾防控  【DOI编码】 10.3969/j.issn.1674-4977.2021.06.048  "Three-in-one
【摘要】 电子天平和电子秤在社会上的应用愈发广泛,已成为重要的衡器。电子天平和电子秤在使用范围、使用精度等方面有较大的不同。基于此,本文将重点进行电子天平和电子秤之间区别的分析与研究。  【关键词】 电子天平;电子秤;区别分析  【DOI编码】 10.3969/j.issn.1674-4977.2021.06.044  Study on the Difference Between Electro
【摘要】 本文通过现场检查资料、专家总结和实际经验,分析新标准实施后企业建设现状和新管理体系运行中存在的主要问题,最后提出改进对策,希望能够对煤矿企业提高标准化建设水平起到一些帮助。  【关键词】 安全生产;标准化;管理体系;煤矿企业  【DOI编码】 10.3969/j.issn.1674-4977.2021.06.045  Analysis on the Construction of Saf