基于Django的高校职工信息采集系统设计与快速实现
2019-01-11张辛
张辛
摘要:人员基础信息库建设是实现高校纪检监督全覆盖的重要基础性工作,在综合考虑保密性、经济性和效率性的基础上,作者通过Django快速构建了基于B/S结构的信息采集系统,实现了不同类型人员的信息采集需要。
Abstract: The construction of personnel basic information database is an important basic work to achieve the full coverage of discipline inspection and supervision in universities. Based on comprehensive consideration of confidentiality, economy, and efficiency, the author quickly built a B/S-based information collection system through Django to achieve the information collection needs of different types of personnel.
关键词:Django;高校职工;信息采集系统
Key words: Django;university staff;information collection system
中图分类号:TP311.52 文献标识码:A 文章编号:1006-4311(2019)36-0225-03
0 引言
根据监察法的要求,高校要实现监察全覆盖,实现全覆盖的基础工作就是建立起完善的人员信息库。高校中不但管理岗的工作人员是监察对象,而且一般教师在行使公权力的过程也是监察对象,因此人员数据库应该是包含全体工作人员的数据库。根据上级纪检监察机关的要求,人员信息的采集涉及到50多项内容,而且多项内容涉及到如身份证号、亲属姓名、出生日期等个人敏感信息,因保护信息的需要,不便于直接利用互联网上提供的免费信息采集服务产品,同样如果采用传统的逐级下发电子表格或纸质表格的方法,一方面也存在涉密风险,另一方面存在工作量大、效率低的问题,而且在后期会产生一系列信息维护的问题。
现代信息技术,特别是基于B/S的 web应用开发技术为此类信息采集工作提供了良好的支持,一个典型的此类web应用开发需要掌握前端语言、后台开发技术、数据库和服务器配置等四项基本技术,而对于一个非专业人员充分掌握这四项技术存在一定困难。一些开发平台较好的整合了上述技术,使基本掌握这些技术的门槛大幅降低,目前较为流行的有PHP、J2EE、ASP.NET等Web开发平台等,但是它们对开发者的编程基础要求比较高,不利于现学现用,如果通过引进专业开发人员或服务不仅增加了工作开展的周期也增加了成本。Django的出现解决了这一问题,它是一款基于Python语言的开源Web应用框架,它逻辑简明,操作简单,以低成本、高扩展、高安全等特点和优势,被广泛使用。因为这些特点Django框架也受到高校信息化建设的广泛关注。
1 技术可行性
Python 是一种流行的解释型脚本语言。Python语言具有较简单易学、免费开源、代码可读性强、丰富强大第三方库和框架等特点。Django是Python中使用率最高的Web框架,它遵循MVC的软件设计模式,MVC是模型(model)-视图(view)-控制器(controller)的缩写,通过这个模式可以快速、方便地开发出一个完整的Web应用。Django框架的核心包括:简易Web服务器、URL分发器、数据库对象关系映射ORM框架、视图系统和模板系统。简易Web服务器只能用于本地开发阶段接受HTTP请求。ORM框架用于建立数据模型与数据库相映射,使开发者完全不用考虑不同数据库的程序编写问题,而且Django本身自带sqlite轻型数据库,满足基本的数据管理任务。Django中的视图系统和模板系统为用户的交互和数据处理提供了方便的应用框架。这些框架的设计极大地方便了应用软件的设计与开发。
基于MVC模式Django通過进一步封装控制层(Control)而形成了MTV设计模式,即模型M,模版T和视图V。主要包括四个模块:一是模型Models.py用于创建数据库模型,二是视图 Views.py是主要的功能模块,负责业务逻辑处理和数据处理,三是模板Templates文件夹中的保存的模版文件,用于最终向用户展示的网页生成。四是路由关系url.py文件则用于定义整个系统或某个子模块的路由表,指定了URL与views.py的映射关系。
2 系统设计
高校人事工作十分复杂,用人关系也种类繁多,既有事业编制、人事代理等由学校正式聘用管理的人员,又有劳务派遣、临时用工等由人力资源企业管理的人员。通过分析学校人事关系及已经掌握的基本信息,可以将人员基本信息采集系统划分为员工登录模块、特殊员工注册模块、信息采集模块、管理模块,如图1所示。
员工验证登录模块:一般学校人事部门对学校正式聘用管理的人员管理较为严格,原始信息较为完整,这一部分员工人数占总人数80%以上,可以通过人事处分配的统一工号及身份证号作为验证信息登录。
特殊员工注册模块:对于其它用工形式人员,人事部门没有分配工号,也没有掌握必要的个人信息,因此需要先注册姓名和身份证号后,系统随机分配一个临时编号用于系统的登录。
信息采集模块:主要工作模块,因采集项目较多,采用列表式逐项采集,其中姓名、编号(工号)、身份证等信息为不可编辑形式,有备选项时尽量采用下拉框选择填写,在模板中用html表单代替Django表单作为信息交互的方式,从而增加信息采集设置的灵活性。
管理模块:主要用于管理员对数据库中的数据进行管理。Django提供了一个简易的管理程序,可以查看、增删数据和表,通过增加导入导出库,可以实现多种格式数据的导入导出。
3 系统实现
3.1 新建工程和数据模型
新建工程:Django-admin startproject 工程名
新建应用:python manage.py startapp 应用名称
系统启动:python manage.py runserver
数据库模型建立models.py文件中,创建数据表的类,因使用html表彰交换,因此其中大多数数据字段类型只需要使用CharField。在需要上传照片的数据项中使用ImageField类型。照片文件保存的目录地址在setting.py文件中设置,设置的代码为MEDIA_ROOT= os.path.join(BASE_DIR, 'media').replace("\\", "/"),MEDIA_URL = '/media/'。在ImageField中upload_to参数用来设定文件传输保存的位置和文件名,在model文件中定义函数可以完成更改文件名和保存位置的功能,具体代码如图2。
在填写表单时为防止机器人程序操作,可以加入简单的验证码功能。首选在安装captcha包,然后在form文件中引入,代码为from captcha.fields import CaptchaField,在新建的类中加入如下语句,重写的__init__函数,可以将显示的英文变成中文,更便于阅读。最后在url.py文件中加入路径url(r'^captcha/', include('captcha.urls')),在setting文件中注册应用“captcha”。(图3)
3.2 数据的导入与导出
Django-import-export是一款专门为Django开发的导入导出模块,安装后既可以在页面中设置输入输出的功能也可以在通用管理界面中加入导入导出的功能,并且支持CVS、EXCEL、JASON等常见的数据格式。在这里主要介绍快速在通用管理界面中加入导入导出的功能。安装模块后在admin.py文件中导入四个模块,import_export.admin、 ImportExportModelAdmin、Django.contrib中的admin,import_export中的resources。然后创建两个类,代码如图4。
最后注册需要在通用管理页面管理的模型,代码为:admin.site.register(Basic_info,BasicInfoAdmin),特别注意要把上一步中创建的第二个类也要注册进去,就可以在管理业面中显示出导入导出功能。
3.3 视图文件views中的主要命令
在前端中主要通过post方法获取用户提交的数据,在视图文件中通过request.POST[‘表单字段name值]命令获取用户提交的数据。在模板中,表单中的属性name的值与数据模型中的中的字段名称一一对应,保存时就可以写入数据库相应内容。在视图文件中主要注意重复身份证号和随机人员编号重复性的验证,上传文件大小的要求验证以及其需要验证的内容。
3.4 在windows操作系统中部署网站
Django在window服务器及IIS中的部署:
首先通过windows安装程度安装IIS和CGI,其次安装python及项目中使用的所有库,这里特别提示如果安装的库不全可能会出现很多奇怪的错误而使程序无法运行,常规办法是通过pip freeze > requirements.txt命令导出项目需要的包,然后在服务器中安装这些包,命令为pip install -r requirement.txt。然后在安装wfastcgi pip install wfastcgi,启动wfastcgi-enable,启动后会显示Python路径和wfastcgi路径。将此路径填加到iis中的fastcgi设置中就可以运行服务器了。
4 小结
系统的建立基本实现了稳定采集员工数据的目的,基本克服了利用商业软件的保密问题和传统信息采集的效率问题,开发过程体现了Django快捷、高效、易上手的特点,从部署以后运行的效果看,系统稳定、安全、可扩展性强、适用性广泛。在此基础上可以进一步完善形成人事结构分析系统和员工档案系统。
参考文献:
[1]刘洋.基于Django框架的运动会管理系统的应用研究[J].技术与教育,2019,33(02):15-18,61.
[2]陈镭,张凡龙.基于Django的高校人才引进系统设计与实现[J].计算机时代,2019(07):40-42.
[3]何方園.基于Web的高校人事管理系统的设计与实现[D].吉林大学,2015.