欢迎来到学术参考网

基于Django的实验室设备管理系统设计效果分析

发布时间:2015-07-22 09:58

 0 引言
   实验室设备管理一直是一项繁琐的工作,包括实验耗品的入库和领用,硬件设备的入库、领用和报废等。由于缺少数据的集中管理,查找设备的相关信息时比较困难。本文实现了Django技术开发的实验室设备管理系统,该系统有助于实验设备管理人员对实验设备进行管理。
  1 关键技术
   Django是一个开源的Web应用框架,由Python语言编写,用来减少开发复杂的数据库驱动站点所要求的工作。Django注重组件的重用性和“可插拔性”,以及敏捷开发和DRY法则。Django框架的核心包括:一个面向对象的映射器,用作数据模型(以Python类的形式定义)和关联性数据库间的媒介;一个基于正则表达式的URL分发器;一个视图系统,用于处理请求;一个模板系统<sup>[1]</sup>。
   Django可以运行在许多Web服务器上,例如Apache,或者是任何WSGI兼容的服务器。同时,Django还支持许多数据库引擎,例如PostgreSQL、MySQL、Oracle。
  2 系统需求分析
  2.1 功能需求分析
   根据实验室设备的日常管理,系统主要功能分为如下几个部分:
   (1)实验耗品管理。每年实验室都会申购一批实验耗品,例如焊锡、松香、实验用电路板、可充电电池等。该功能负责管理实验耗品的购入、使用、存量、记录和查询等数据信息。
   (2)非易耗品设备管理。实验设备主要是一些非易耗品,例如电脑、投影仪等。这些非易耗品不会经常损耗,但是会涉及到设备的采购入库、报废、设备的领用场地等数据<sup>[2]</sup>。该功能主要实现这些非易耗品的入库、报废、设备目前使用情况等数据信息的管理。
   (3)领用申请模块。要使用实验耗品和非易耗品都需要进行领用的申请。领用申请包括领用数量、领用类型、领用人、领用原由等信息<sup>[3]</sup>。根据这些信息,可以快速、准确地查到实验设备的使用情况。
  2.2 非功能需求分析
   非功能需求通常包括系统的效率、可靠性、可用性、可维护性、适应性和易用性等。系统在高校内部使用,因而用户不会太多,但仍然对并发访问时的系统性能有要求:①单用户操作系统时,2s之内出现结果;②多个用户同时访问操作系统,要求并发的响应时间不得超过8s;③对于恶意入侵,比如网络包攻击、SQL注入攻击等具有防范能力;④系统的理想故障频率为1次/年,最坏故障频率为2次/年,最理想故障频率为0.5次/年。
   系统的易用性在设计方面的要求是界面友好、符合用户操作习惯、易上手。即:①系统界面简单整洁,布局设计合理,符合目前一般用户的使用习惯;②尽量减少使用者的输入量,人机对话友好,有操作错误提示,处理错误的数据输入。
  3 系统设计
  3.1 系统体系结构设计
   Django是一个典型的MVC模型框架,、、分别代表模型、视图和控制,分别处理表现层、控制层和数据层的业务处理。系统体系结构如图1所示。
  图1 实验室设备管理系统体系结构
   使用MVC结构,使得基于实验室设备管理系统满足如下要求:
   (1)非功能性需求中的易用性。用户使用系统不需要占用客户机太多的资源,在人机交互过程中操作简便。
   (2)非功能性需求中的可用性。系统采用B/S、MVC结构,在服务器端设置网络防火墙可以防止一般的网络攻击。在系统方面,MVC分离了页面和数据库,无法通过控制直接修改数据库内的数据,由于使用了Django的模板技术和自带的ORM框架,保证了系统的安全可用。
   (3)非功能需求中的可维护性和适应性。系统的分层设计使得系统的升级维护更加简单。系统只是在服务器上运行,客户通过浏览器进行访问,所以系统的升级维护都只需要在客户机上进行,不需要耗费大量成本进行维护升级。
  3.2 系统功能设计
   根据功能需求分析,系统需要完成对耗材、非耗材的领用情况、库存方面的管理。系统功能模块如图2所示。
  图2 系统功能模块
  3.3 数据库设计
   系统数据库的主要实体表如表1—表3所示。
  表1 耗品清单(nlab_consumption)
  字段名数据长度是否允许空备注
  idint(4)否主键
  consumptionVarchar(50)是耗品名称
  cnumberInt(4)是耗品数量
  storageTimesmalldatetime是入库时间
  表2 设备清单(nlab_device)
 字段名数据长度是否允许空备注
  idInt(4)否主键
  devicenvarchar(50)是设备名称
  damountInt(4)是设备数量
  dtypenvarchar(50)是设备类型
  dstrorageTimedatetime是入库时间
  scrapint(4)是是否报废
  assetNumbernvarchar(20)是资产号
  表3 领用信息(nlab_useinfo)
  字段名数据长度是否允许空备注
  idInt(4)否主键
  usernameVarchar(20)是领用人名字
  usertimeSmalldatetime是领用时间
  purposeVarchar(20)是用途
  usenumberInt(4)是领用数量
  returnInt(4)是是否归还
  4 系统实现
  4.1 开发环境
   系统开发采用Python2.7,Django1.6版本,Web服务器采用Apache,数据库使用MySQL。编写代码的工具采用Eclipse,利用PyDev插件,实现了在Eclipse中开发Django的应用项目。项目文件如图3所示。
  4.2 部分实现代码
   使用Eclipse创建一个Django的工程后,会产生一些.py的文件,包括、、、等,这些文件包括了项目的配置、Django自带后台的管理配置、数据库ORM、视图和控制的配置与开发等。
  图3 项目文件
  4.2.1
   文件负责配置URL的地址映射和管理URL的地址格式。通过正则表达式注册站点信息,核心代码如下:
   scover()
   urlpatterns = patterns('', include()),)
  4.2.2
   是Django工程的配置文件,与工程相关的工程模块和数据库全局配置信息都在中设置。在该文件中加入项目及配置数据库,相关代码如下:
   INSTALLED_APPS = (
      '',
      '',
      ' ttypes',
      'ns',
      'es',
      'files',
       'nlab',  #这里添加了nlab项目
   )
   DATABASES = {
      'default': {
          'ENGINE': '',
          'NAME': 'djangoNlab',
          'USER':'root',
          'PASSWORD': ' ',
      }
   }
  4.2.3
   借助Django内部的对象关系映射机制,可以用Python语言实现对数据库表中实体的操作,实体模型的描述需要在文件中配置。中nlab_consumption表对应的代码如下:
   class nlab_consumption():
  id = rField (max_length = 4)
      consumption = eld(max_length = 50)
      cnumber = rField (max_length = 4)
      storageTime = eld(blank = False,null = True)
      def __unicode__(self):
  
          return self. consumption
      class Meta:
  
          ordering = ['id ']
  4.2.4
   中添加要管理的对象。当配置文件的改动完成后,执行命令,Django会根据模型的定义自动完成ORM的数据库映射工作,屏蔽了底层数据库细节和SQL查询的编写。注册对象代码如下:
   er(nlab_consumption)
  5 结语
   通过实验室设备管理系统,可以高效地查询到耗品和硬件设备的使用情况,能够提高耗品的使用效率,避免重复购买。同时可以掌握硬件设备的使用年限和使用人,对即将报废和已报废的设备进行统计管理,实现了动态监管,提高了资产设备清查效率。
  参考文献:
  \.电脑编程技巧与维护,2009(2): 56-58.
  [2] 万发桃.实验室设备的管理与维护[J].黑河学刊,2012(8):27-28.
  [3] 陈剑明.实验室设备管理问题的思考[J].中国科技纵横,2013(9):250-250.

上一篇:在线考试时间控制技术的设计与实现

下一篇:基于OSG和Bullet的船舶碰撞响应三维仿真创新机制