程序安装及概要

最近用到了一款考勤机xFace100,其后台管理程序为zktime,是一个考勤刷脸的django为基础的BS架构管理程序。
供应商让从官网下载了zktime的11.1版安装包,对于我的使用场景比较契合,用于管理分布于多个物理地址的指纹打脸机,试用版有效期1个月,支持5台设备。对人员和考勤的管理比较规范完整,具备班次管理、排班、请假、生成考勤表的功能,具体可参看管方说明。

  • 此程序后端可使mysql、mssql、oracle等数据库。安装时程序默认发布在mysql。我使用的是oracle11。
  • web前端主要是使用django,版本1.11.29。 支持缓存和静态apache服务。
  • timer.py使用了apscheduler启动一些计划任务,这些任务在web前端有个管理入口,比如计算上班时长,数据汇总等。

全部程序代码和支持库存在于zktime安装目录,包括python,django,mysite,dll。由一些批处理*bat进行环境初始化,服务部署分配,状态检测。其核心用户验证和版本检测使用了pyd文件,具备防止反编译的功能。

经验技巧分析探讨

本文以下部分将对Zktime11.1B/S版的一些经验技巧进行分析探讨,希望为此类型场景有需要的人提供借鉴支持。

一、对web端的定制,环境的准备

此软件有一个窗口管理各种服务的状态启停测试,对开发者来说可先停止所有服务包括cache、server、apache、proxy四个服务。
然后打开cmd窗口,进入软件安装目录运行

cd c:/zktime
init.bat
pyton mysite/manager.py  shell

进入开发环境里的django shell,可以对model进行测试,对各业务模块进行引用,或自己定义一部分功能函数进行定制。

python mysite/manager.py  runserver

去启动试用服务。在这之前要确保数据库已经初始化,并且正常启动,一般来讲,只要官方的启动状态是好的,能进入web管理,那么
runserver命令打开的服务将是基本一致正常使用。
以上为定制准备好了调试环境,下面还要准备代码环境,一个大概的情况是
mysite是web程序主目录,里面分很多个功能模块,有用户、考勤机、门禁、会议等。每个里面有各自的url、model、view以实现这种经典的设计。
mysite目录下有一个总的url进行引入,接入管理。以后会经常用到。
而所有的这些都是pyc文件,对用户来说是加密,我们通过

uncomplye和decompyle

的使用发现,某些文件可以读懂其中的大概,比如url,比如model,然而这些文件都不能替换最初文件使用。只是帮助分析出大体功能对应的位置,或者某个model对应的table,还有某个计时器对应的函数内容。有了这些对定制程序会很有帮助。在此基础上,我将进行下一步定制工作。

二、对数据库和model的定制

在具体使用过程,我们经常需要建立自己的model,对应于一个新的表格,这就需要重写model文件,进行migrate,数据迁移。这个功能对我来说是试验性的,过程是:
在现有app里新建models.py,将原了models.pyc,解码参考其现有数据,原有文件改写名称models01.pyc,在文件首部
from models01 import *
这样在不影响即有功能的情况,具备了自定义model的能力。在完成以后,进行
migrate,然后使用
pyton mysite/manager.py shell
进行试用即可

三、对url的重写views定制返回json数据格式

将某个urls改名,和model相仿,就可以完成新的urls的定制,views也可使用相同的方法加入新的响应代码,以完成想要的新功能。我对django的开发并是熟悉,原则上可以新建自己
想要的项目添加进来。

四、修改菜单,加入url新项

导航菜单在mysite,urls中有一段代码对应一块html数据,通过对这一块数据的更改替换可完成菜单的定制,加入自己需要的菜单。菜单细节可能存在于某个model中,进行了保存。

五、引入vue

完成了以上的测试,我引入了一个Vue页面,是对所有当班人员进行了分类显示,比如,迟到的,请假的。而这些人员又能分部门和全员汇总,前端部门树菜单使用了原有接口,用js的函
数进行更改,让点击操作,对应到对vue的函数调用。将vue函数公开到总体框架,使用windows.vue.function().进行调用,来更改窗口的外观和数据展示,效果还行。下面是的部署细节

  • 将这个json数据源的获取加入某个views中,我加入了meeting这个现存的不用的模块中成为其中的一部分隐含功能。
  • model使用即有的人员分析。
  • 前端页面放在mysitet/template下面由apache服务获取,或者django调度使用。
  • 将静态页面地址加入urls测试,成功后加入前端菜单框架,提供最终用户访问。数据源函数可加入验证逻辑,登陆后才能使用。

*** 经验点滴摘要对用户验证逻辑的定制

完成以上操作过程中遇到一个绊脚石,就是不定时,无法预期的,在web登录窗口提示程序文件被修改,请重新安装之类的错误。通过对可读的那一部分代码分析,这应该是一种pyd认
证函数内置的,对当前目录文件属性的一个分析造成。当有新文件存在,禁止用户登录使用此系统。这就禁止了普通用户和病毒对程序的破坏。对于定制软件的开发人员,由于有以上
的分析,这个过程被绕过了,关键在于验证用户的函数,它包含在某个url中,对用户密码时行分析,将这个函数覆盖定义,加入查询,认证,但不去使用原有函数的分析目录过程,只
返回用户密码正确或错误的结果。修改后启动。原来的目录检测消失,不再提示。就此搬开了这块绊脚石才有了上面这此篇幅。

总结及免责声明

最后,此文提供一些定制django程序的方式和方法,为了应对不停变化的业务需求,这好像是不可避免的。而推倒重来好像又工程巨大,耗时又费力。这些定制方法提供了一种暂时方案。
本文以学习交流为目的,并未用于任何商业用途,如有侵权,马上删除。

django下的考勤机管理系统定制实例相关推荐

  1. qcombox下拉框样式_ComboBox样式实例及下拉框的定制

    导读 组合框是一个重要且应用广泛的组件,一般由两个子组件组成:文本下拉单部分和按钮部分.在许多既需要用户选择.又需要用户手动输入的应用场景下,组合框能够很好的满足我们的需求.如我们经常使用的聊天软件Q ...

  2. [Python+Django]Web学生信息管理系统数据库设计及系统实现

    本文我们完成数据的设计,并通过Django框架完成数据库构建同时利用Django框架模式实现学生信息管理系统的功能. 简单的包装下毕设应该没问题了. Python,Mysql,Pycharm的安装本文 ...

  3. 【毕业设计之python系列】基于django的奶茶店管理系统

     基于django的奶茶店管理系统  摘 要 近年来,奶茶的受欢迎程度在全球范围内迅速增长.随着奶茶店数量的增加,管理这些商店变得越来越复杂.店主需要同时处理库存.订单.员工和客户等各种任务,有效地管 ...

  4. 基于Django的大型超市管理系统毕业设计

    基于Django的大型超市管理系统毕业设计 摘 要 随着社会经济的不断发展,超市作为一种重要的零售业态,已经成为人们日常购物的主要场所之一.然而,传统的手工管理方式存在诸多弊端,如效率低下.信息不准确 ...

  5. Win10+Python+Django+Nginx+MySQL开发教程及实例(1)——开发环境搭建

    Win10+Python+Django+Nginx+MySQL开发教程及实例 PaulTsao 本教程共有三篇内容: 第一篇:Win10+Python+Django+Nginx+MySQL 开发环境搭 ...

  6. Win10+Python+Django+Nginx+MySQL开发教程及实例(2)——Python连通操作MySQL

    Win10+Python+Django+Nginx+MySQL开发教程及实例 PaulTsao 本系列教程共有四篇内容: 第一篇: 开发环境搭建 第二篇:用Python连通操作MySQL 第三篇:用N ...

  7. 基于docker搭建django的web图书管理系统

    一.概要 本次将使用docker搭建一个基于django框架的图书管理系统,本次用到的技术包括: docker基本命令: 数据卷挂载: dockerfile编写: docker网络技术: django ...

  8. 面对管理系统定制开发的巨大需求,这个低代码平台居然免费开放?

    编者按:在信息化的大潮之下,管理系统已经成为了企业普遍需求且依赖的工具,本文介绍定制开发的必要性以及现状,介绍老牌唱片MyApps的优势,并附上MyApps平台免费获取攻略~ 管理系统定制变化的必要性 ...

  9. nginx mysql 网页显示_Win10+Python+Django+Nginx+MySQL开发教程及实例(3)——Nginx运行html网页...

    Win10+Python+Django+Nginx+MySQL开发教程及实例 PaulTsao 本教程共有三篇内容: 第四篇*:创建个人博客 第五篇*:个人博客网站上云部署并运行 第三篇:Win10+ ...

  10. 057_《Delphi住宿餐饮管理系统开发实例导航》

    <Delphi住宿餐饮管理系统开发实例导航> Delphi 教程 系列书籍 (057) <Delphi住宿餐饮管理系统开发实例导航> 网友(邦)整理 EMail: shuaih ...

最新文章

  1. appfog mysql_appfog java jdbc mysql连接
  2. php限制接口访问次数_令牌桶限流思路分享(PHP+Redis实现机制)
  3. 洛谷——P3225 [HNOI2012]矿场搭建
  4. 常用的php类、方法、函数 注释标记
  5. cookie,session与token的真正区别
  6. 最新可用双端美化版在线音乐播放器网站源码
  7. html语言个人网页,个人网页介绍家乡纯html
  8. Java并发包源码学习系列:AQS共享式与独占式获取与释放资源的区别
  9. SQL Server 添加Northwind数据库
  10. Kali局域网断网攻击
  11. 训练模型两种保存方式 saver& load
  12. 数字图像处理实验之伽马变换
  13. 织梦dedecms网站地图生成在根目录的开发教程
  14. 微信小程序用户昵称包含表情图片的解决方案
  15. TIA博途WinCC PRO中通过脚本控制图层的显示和隐藏
  16. Android_学习安卓必备网址
  17. C# Contract诊断
  18. MSTP的原理以及实验
  19. matlab对矩阵自相关,自相关矩阵和互相关矩阵的matlab实现
  20. 搭建PHP后台开发环境, XAMPP

热门文章

  1. 微创器械行业调研报告 - 市场现状分析与发展前景预测
  2. javabs架构实习管理系统计算机毕业设计MyBatis+系统+LW文档+源码+调试部署
  3. android studio 截图方法,Android studio 2.0 的安装的全程截图,手把手教学,亲自实践。...
  4. flash插件java_[Java教程]SWFObject Flash 增强插件
  5. 软件测试 (5) 数据库语句
  6. U1C3 介绍SketchEngine和Web语料库研究
  7. dcm4che操作dcm文件
  8. 华为网络工程师认证需要哪些学习资料?
  9. 【免费】搜狗站长URL自动推送工具1.4.1
  10. Python正则表达式(附语法详解)