收稿日期:2020-06-22
作者简介:汪洋(1995-),男,安徽池州人,硕士研究生,主要研究方向:Python Web 开发;姜新通(1973-),男,山东威海人,副教授,主要研究方向:农业
信息化。
MVC 框架在Python 与Django 下的设计研究
汪
洋,姜新通
(黑龙江八一农垦大学电气与信息学院黑龙江大庆
163000)
摘要:随着互联网技术的蓬勃发展,其在生活中的应用范围愈发广泛,
且发挥着巨大的作用。同时它催生了大量的新型产业,如通过Web 技术开发的各种购物软件、音乐软件、视频软件和订票系统等。因此搭建一个实用型的MVC 框架对Web 应用开发具有重要意义。文章基于Python 语言利用Django 搭建了一个切实可行的MVC 框架,让开发人员能够更好、更快的开发Web 应用。
关键词:Python ;Django ;MVC ;Web 开发中图分类号:TP393
文献标识码:A
Design and Research of MVC Framework under Python and Django
WANG Yang,JIANG Xin-tong
(School of Electrical and Information,Heilongjiang Bayi Agricultural University,Daqing 163000袁China)
Abstract :With the vigorous development of Internet technology,its application in life is becoming more and more extensive,and it plays a huge role.At the same time,it has spawned a large number of new industries,such as various shopping software,music software,video software and ticket booking systems developed through Web technology.Therefore,building a practical MVC framework is of great significance to Web application development.Based on the Python language,this article uses Django to
build a practical MVC framework that allows developers to develop Web applications better and faster.
Key words:Python;Django;MVC;Web development
随着互联网技术的快速发展,Web 开发对于开发
时间、开发成本和开发效率的要求更加苛刻。因此搭建一个完整的Web 框架,
对于Web 开发十分重要。本文在Python 语言下利用Django 搭建了一个稳定高效的实用型MVC 框架用于Web 开发[1]。
Python 作为程序设计语言之一,
它诞生于20世纪90年代初,现在已经逐渐被广泛用于Web 编程等工
作。Python 语言本身具有易读性、简洁性和可扩展性等特点[2]。Python 是一种功能强大的开源性语言,
它拥有丰富的标准库。除此之外,它定义的第三方库也可以使用,如PIL (图像处理库)、Pymunk (物理图形模拟库)和Matplotlib (绘图库)等,可以帮助开发人员在开发过程
中提高效率。
Django 是用Python 开发的一个免费开源Web 框
架。Django 有默认的数据库sqlite3,但是同样可以使用
其他数据库,如MySQL 、Mongodb 等。Django 自带的模
版引擎简单好用同时也支持Jinja 非官方模版引擎。其部署可以选择在Apache 、Nginx 上,同样支持在WSGI 、
FastCGI 的服务器上运行。正因为如此,
使得Django 快速、稳定,解决方案多[3]。再结合Python 强大的库,开发人员根据需求可以高效地完成任务。
MVC (Model View Controller)是Xerox PARC 在二
十世纪八十年代为编程语言Smalltalk-80发明的一种
软件模式,现已被广泛使用。Model (模型层)、View (视
图层)和Controller (控制层)
是MVC 框架的核心部分。MVC 框架设计的目的是将视图层和业务层分离,这样的分层有助于管理复杂的应用程序同时也简化了分组开发,让不同的开发人员可同时开发项目的各项业务工作,从而加快开发进度和降低开发成本[4],且便于开发人员对于应用程序后期的维护和修改。
电脑与信息技术2021年2月
Django的MVC流程架构图如图1所示,图中标明了每一层将要使用的文件名称,这样开发人员在使用此框架时可以清楚地在每一层下对应的文件进行开发[5]。
图1Django的MVC的流程架构图
1MVC框架的环境部署和搭建
1.1开发环境部署
本次开发的MVC框架是在ios操作系统下进行的,开发软件是一款功能强大的Python编译器PyCharm,解释器版本是Python3.7.2。综合开发各方面的需要,选择使用的是Mongodb数据库。Mongodb是一个由C++语言编写的非关系型的数据库。它支持的数据结构十分松散,所以能够存储比较复杂的数据类型[
6]。由于高性能、易部署、易使用等特点让它在Web开发方面得到广泛应用。此外还需要安装Pip3,Pip3是一个安装Python包管理工具。它提供了对Python包的查、下载、安装和卸载功能。在安装完上述的软件后,接下来安装MVC框架所需要的各种基础扩展包。
1.2建立MVC工程目录
本文设计的MVC框架的工程目录结构如图2所示。MVC是此项目的主文件夹,里面的settings.py是整个项目的配置文件,里面是用来修改django的配置内容,urls.py文件是主URL控制器,通过URL控制器来处理不同的请求,wsgi.py文件是将python服务器程序连接到web服务器的通用协议,通过wsgi.py文件可以用来调用application的应用。Web是一个app,在django中,引入了application的概念,目的是为了让分类更加有条理,更加清晰。Web目录下存放的是此MVC框架的核心部分。migrations文件夹是同步数据库时要用到的。static文件夹存放静态文件用于配置网页的美化工作。templates文件夹保存应用程序的模版文件,一般包括html前端页面内容。uploads文件夹存放上传文件用于缓解后台读取数据的压力。Admin.py 文件是django自带的一个admin管理模块。urls.py文件存放的是控制层的相关逻辑,目的是为了将应用和用户连接起来,当用户发出请求来匹配views.py文件中相应的视图函数,根据程序逻辑与models.py文件中相关的模块进行数据交互。manage.py文件是项目的运行入口,指定配置文件路径[7]。
图2MVC的工程目录结构图
此MVC框架的工程目录图结构清晰,各文件部分的功能解释的很清楚,开发人员利用此MVC框架进行开发时,只需要根据自身的需求来对此框架的各个目录功能进行完善就可以进行高效开发。
1.3MVC框架的基本配置
第一步将进行对项目的整体配置,如图3所示。在settings.py文件的第32行INSTALLED_APPS中将创建的应用Web添加进去,这样就可以对整个应用进行统一的配置和管理。在程序的第14行从mongoengine 模块导入connect类,然后在第81行进行对数据库连接的配置,其中包含数据库名称、域名和端口[8]。如图4所示,manage.py文件是对django-admin的简单包装,方便对整个项目的管理,其中包括启动项目和创建应用等命令。在程序的第4行代码是个启动文件,并通过try/except打印程序运行中出现的异常错误。
图3settings.py文件代码
第二步创建页面视图,在“/Web/views.py/”文件
里·56·
第29卷第1期汪洋等:MVC框架在Python与Django下的设计研究
定义一个index视图函数来完成一个页面的设计。如图4所示,在程序的第2行从django.http模块导入了
HttpResponse类,接下来在第6行定义一个视图函数index()完成对页面的封装,第7行通过一段简单的文字向用户返回页面信息[9]。
图4app Web的views.py文件代码
第三步给创建的页面配置路由,打开MVC框架的Web文件夹下的urls.py文件,如图5所示,在程序的第1行从django.urls模块导入path类,第2行导入views模块,接下来在4、5两行配置应用中的路径,命名为index。然后打开MVC文件夹下的urls.py文件,如图6所示,在程序的第17行从django.urls模块导入path、include类,第18行从Web中引入views模块,,接下来在20行到23行配置项目中的路径。
图5Web的urls.py文件代码
图6MVC的urls.py文件代码
1.4启动MVC框架应用
通过以上操作完成相关代码设计和软件配置后,然后在终端输入项目启动指令:python3manage,py runserver即可启动MVC框架应用。接下来打开Google 浏览器或其他浏览器输入:127.0.0.1:8000(本地访问的IP地址以及服务的端口号),然后在8000后面添加“/ index/”,如果访问结果如图7所示,则应用可以通过互联网被用户访问,反之出现错误则需观察终端查询是不是路径或者其他问题[10]。
图7Goole成功访问页面
2实用案例
本文简单介绍在已搭建好的MVC框架的基础上,开发了一个简单的电商购物系统。电商购物系统的登录页如图8所示。
图8电商购物系统登录页
电商购物系统的首页管理页面如图9所示。用户中心、商品列表、购物车和订单模块是整个项目的核心部分,由于本框架的视图层和业务逻辑层是分离的,因此可以同时进行开发视图层和业务层,这样避免在开发过程中出现互相干扰的情况,同时也提高了开发的效率。经过反复测试,该系统的运行效果达到预期目标,此框架操纵起来简单,而且思路清晰,适用于Web 应用开发的需求[11]。
图9首页管理页面
3结束语
本文基于Django搭建的MVC框架,具有内部支持功能多、自带后台管理、解决方案多等优势。因此利用此框架能够进行快速开发,同时后期维护也十分方便。经过运用此框架在搭建个人博客网站、超市商品管理网站和公司业务管理系统等都有很好的效果。对于各种类型的网站,此框架都能完美地搭建。因此对于今后的Web开发具有一定的实用价值[12]。
参考文献:
[1]边蓓蓓,于萍.MVC模式在Web中的应用研究[J].数字技术
与应用,2015(10):136.
[2]钱志远.基于Web编程框架环境研究[J].数字技术与应用, 2016(10):54.
[3]朱贇.Python语言的Web开发应用[J].电脑知识与技术, 2017(32):95-96.
[4]王光磊.MongoDB数据库的应用研究和方案优化[J].中国科
技信息
,2011(20):93-94.(下转第63页)
·57·
第29卷第1期
[5]邬金池.基于WEB的图书管理系统的设计与开发[D].大连
理工大学,大连,2013(02):59.
[6].Miller C S,Connolly R.Introduction to the Special Issue on Web Development[J].ACM Transactions on Computing Education,2015,15(1):1-5.
[7]Pop D P,Altar A.Designing an MVC Model for Rapid Web Application Development[J].Annals of Daaam@Proceed-ing, 2013,69(1):1172-1179.
[8]Knox S,Meier P,Yoon J,et al.A python framework for multi-agent simulation of networked resource systems[J].
Environmental Modelling&Software,2018,103:16-28. [9]GrehanRick.Pillars of Python:Django Web framework.ProQuest, 2011.
[10]Eelco Plugge,Peter Membrey,Tim Hawkins[M].The Defintive Guide to MongoDB.Apress,2011.
[11]Eelco Plugge,Peter Membrey,Tim Hawkins[M].The Defintive Guide to MongoDB.Apress,2011.
[12]Jongseong Yoon,Sangjin Lee.A method and tool to recover data deleted from a MongoDB[J].Digital Investigation,2018,24: 106-120.
刘永:基于中台技术的取消省界收费站系统设计与实现
基础设施基于x86建设,在x86集硬件的基础上建设公有云、私有云和生产云。公有云主要对公提供公众服务,私有云主要基于hadoop大数据平台承载湖南高速的数据中心和核心业务,生产云负责门架、收费站、分中心和省中心各生产数据上传下发,保障核心计费功能;边缘侧基于arm嵌入式实时工业系统建设,在嵌入式系统的基础上建设实现门架侧边缘业务计算;大数据平台是湖南高速数据中心的核心组成部分,由
django网站Oozie、数据集成、数据分析、分布式列式数据库、分布式数据存储、分布式资源管理、分布式计算引擎和分布式集管理组成;中台技术能力服务在大数据平台的基础上向上提供大数据能力支撑、AI/挖掘服务、通用服务、千亿级图片查询四大能力。边缘计算主要在门架侧提供边缘计算。边缘能力主要基于嵌入式系统的边缘OS实现车牌识别、图片去重、无损压缩、车祸识别、拥堵识别、异常闯入、疲劳驾驶等业务功能;安全在等保三级的框架下实现数据安全、应用安全和大数据平台安全。
5结束语
高速公路省界收费站的取消将有效提高综合交通运输体系运转效率,是我国深化收费公路制度改革重要举措之一。本文以湖南高速取消省界收费站工程为背景,对取消省界收费站系统设计与实现展开了深入探讨,提出了基于中台技术的建设方案,从技术架构、业务架构、数据架构等方面介绍了取消省界站系统的架构设计与实现,并以此为基础上详细给出了技术中台的架构设计和实现。系统实际运营状况表明,该系统以取消省界收费站为业务核心,实现了湖南高速联网计费精准化、账务清晰化、运营高效化,改善了人民众出行体验,达到了降本增效的目标。
参考文献:
[1]李腾.取消高速公路省界收费站带来的影响[J],智能城市, 2020,6(5):136-137.
[2]徐东彬,王倩,何培舟.取消高速公路省界收费站跨省域联网
方案研究[J],中国交通信息化,2019(12):89-93.
[3]安家宏.取消省界收费站对货车通行费影响及对策[J],中国
公路,2020(1):102-104.
[4]张志国,刘祺.潍日高速取消省界收费站施工组织方案探讨[J],中国交通信息化,2019(12):31-32.
[5]王之强.高速公路省界收费站取消后综合利用研究[J],价值
工程,2020,39(12):11-13.
[6]张剑.淮南管理处取消高速公路省界收费站系统建设[J],中
国交通信息化,2020(3):27-30.
(上接第57页)
·63·
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论