基于Djongo的制丝车间备件管理系统的设计与实现

2023-07-11 11:02张怡赵易符浩冯海林森
电脑知识与技术 2023年15期

张怡 赵易 符浩 冯海 林森

关键词:Django;ORM;Python;数据库;制丝车间

0 引言

制丝车间维修备件是设备维护与保证设备正常连续工作的一个重要后备力量,并且人工统计的方式经常会出现信息偏差、数据维护困难、工作效率低下等问题。同时为了了解备件库存情况,需要进行定期盘查,费时费力且容易出错。由于对库存情况不能做到实时准确的了解导致需求信息不能及时传递给公司的采购部门有时就会造成因为缺少备件而维修困难的问题,增加维修时长,影响设备生产的连续性,所以备件信息化管理需求越来越迫切。随着信息技术的发展,已经有很多仓储系统成功开发的案例,如:林杨的基于Java EE的仓库管理系统[1];黄垚设计并开发出一种Java、Spring 与数据库结合的仓库管理系统[2];吴凡开发了一种应用RFID感应技术物联网和计算机系统相结合的智能仓库管理系统[3]。案例中可以看出仓储管理系统可以应用数据库实现信息的增加、删除、更改等功能。为了实现维修备件仓库的入库、出库、查询、实时库存等具有信息化智能化的制丝车间备件管理平台,本文基于Djongo与数据库开发了一套制丝车间备件管理系统。

1 应用技术

Python语言的语法简洁而清晰,具有丰富和强大的类库,常被称为胶水语言[4]。并且Python语言是高级语言且具有简单、开源、可以移植性、可扩展性、可嵌入性的特性以及具有丰富的类库的特点,本文运用Python语言进行开发[5]。

1.1 数据库

数据库就是一种信息存储工具,而计算机数据库技术是管理信息数据时所常用的一种便捷高效的手段之一。常见的数据库有MySQL、Oracle、SQL Server、MongoDB、Memcache、HBase等,其中MySQL具有易使用、开源性、接口丰富、开发成本低等优点[6],因此本文采用和MySQL作为后台数据库类型。

1.2 访问数据库方式

在Python系统中访问数据库一般有如图1所示的两种方式。一种是直接连接的,另外一种则是基于Django通过ORM访问进行操作。

1.3 Django

Django是基于Python语言的一种开源网络框架,采用MTV模型即Model-Template-View将业务逻辑、表示逻辑以及数据库定义三者在应用开发过程中完全分离[7]。Model层功能块通过ORM对数据进行处理封装;Views层功能是展现数据,实现业务逻辑,是模型之间联系的纽带;Templates层功能是方式和效果的呈现。

1.4 ORM

ORM(Object Relational Mapping)即对象关系映射的概念,它可以基于Django对各种数据类型进行封装并连接入库得到一个数据库API[8]。通过这一操作业务逻辑层可以对数据库进行各种操作。

1.5 数据库连接选择

直接访问的操作流程逻辑复杂、重复度高,并存在注入攻击等安全风险问题,业务与数据逻辑分离困难。并且当需要改变迁移数据库类型时,在系统中直接写原生SQL会造成非常大的变更成本。

利用ORM间接访问的方式与直接访问的方式相比简化了访问方式、减少代码的重复性、实现分层模式和提高安全特性的优点。并且它又拥有统一的访问接口可以实现通用数据库交互避免,避免了不同数据库原生SQL语言不同的问题[9]。

因此,选择基于Django通过ORM访问数据库的方式进行系统开发。

2 需求分析

2.1 需求分析

对系统的需求分析是开发的第一步,也是决定系统性能和最终功能的最重要的步骤。首先需要明确想要实现的功能需求,并且对这些需求的可行性、性能和功能等方面进行具体的分析。通过分析确定合理需求,排除不合理需求,提升开发效率缩短开发时间。经过分析与讨论,本系统的主要功能是对备件信息的查询。

2.2 功能需求

功能需求是在实现主需求条件下各项子功能的具体要求具体有:

1)用户可以查询通过关键字搜索到自己想要的备件信息,包括物料号、物料名称、库存和备件具体位置。

2)用户可以在查到备件信息后对所需备件进行出入库与删除功能。

3)用户可以添加仓库内不存在的备件信息即“库存新增”功能。

4)用户可以对出入库操作记录进行查询。

5)拥有用户权限:当用户登录时可以对备件信息进行操作,如果没有登录则只能进行信息查询,进行增删改等功能时会直接跳转到登录页面。

3 软件设计

在Python中可以直接创建Django模块,之后会自动生成基于Django的各种子功能程序文件,其主要文件的功能如下:

1)setting.py:对数据库进行配置。

2)models.py:实现对数据操作配置。

3)migrations.py:对数据库的变更进行记录。

4)views.py:功能进行操作,实现用户请求。

5)urls.py:配置函数。

3.1 连接数据库

3.2 数据库操作设置

在model.py中生成两个数据模型分别为库存列表和出入库记录。

3.3 视图及其功能

功能的实现通过在主页面进行请求,在url.py中的render函数对应过来,render函数内部读取含有语法模板的HTML文件进行内部渲染其中模板语法执行并替换数据,最终得到的是只包含HTML标签的字符串。最后将渲染完成的字符串返回给用户浏览器。用以实现各种功能。

4 实现

该系统主要实现了页面布局,查询模块,用户登录,用户授权,操作记录等功能。具体实现如下:当进入系统页面后,首先弹出系统首页如图2所示,可在标头栏找到自己想要进行的操作(具体有:维修组备件管理系统、库存查询和出入库记录),对备件进行查询时不需要登录,只需要在搜索栏找到自己需要找到的备件,点击查询即可,如图3所示。

当需要对备件进行出入库以及删除操作时,如没有登录,当点击操作按钮时则自动跳转登录界面如图4所示,如已经登录则继续操作,如图5(a)、图5(b)所示分别为出库操作页面、入库操作页面,删除功能需要登录特定账号进行,操作只需点击删除按钮即可。

当备件入库时,先对备件进行查询,如在数据库中查询不到此备件,则需要对其进行备件新增,其页面如图6所示。

当想要查询历史操作时,点击标题栏(出入库记录)即可,如没有登录该系统页面显示为空,登录后可以对出入库历史记录进行查询,如图7(a)、图7(b)所示分别为出库、入库纪录查询,查询后可看到操作类型、时间、用户名等信息。

5 结束语

本文基于Django的ORM框架,结合MySQL数据库设计了一个制丝车间备件管理系统。该系统解决了备件重复整理的时間,缩短了维修时备件查找的时间,提高了维修效率保证了车间设备的持续生产。当有新的备件需要入库时,不再需要在表格中查找标记,核对备件数量并重新纪录,缩短了工作时间,防止记录出错。同时该系统还可以让维修工对备件库存有实时的掌握,以便对备件进行及时采购与更新。