1.1. 编辑界面 默认任务的编辑界面,对于model属性包含"choices"会自动显示下来列表供选择,"datetime"数据类型也默认提供时间选择组件,如下图: 注意:"auto_now_add=True"的属性默认不会显示在编辑界面,外键字段会自动加载关联表数据,如上图操作员属性. 1.1.1. 设置要显示的模型属性 我们可以通过设置不显示操作员选项,代码如下: fields=('TaskNum','Source','Target',Ba…
Django Admin笔者使用下来可以说是Django框架的开发利器,业务model构建完成后,我们就能快速的构建一个增删查改的后台管理框架.对于大量的企业管理业务开发来说,可以快速的构建一个可发布的基本的原型,也可以直接通过后台管理快速开发基本的管理系统,提高产品迭代的效率和开发周期.现在就让我们开始配置程序,来掀开admin的庐山真面目! 1.1. 修改程序调试默认端口 笔者在这里为了避免与其它程序的默认端口冲突,我们把工程的默认端口改成8001,这样可以减少调试过程中遇到端口冲突时初学者…
前言:随着国家工业2025战略的推进,工业互联网发展将会提速,将迎来一个新的发展时期,越来越多的企业开始逐步的把产线自动化,去年年底投产的小米亦庄的智能工厂就是一个热议的新闻.小米/华为智能工厂只能说是中国制造2025的一个代表,产业转型和制造升级,笔者从事的企业领域就越到越来越多的(制造)企业开始悄悄的自动化/智能化.这里肯定有国家政策推动的大背景,同时,也有着企业自身不断提高生产率的“刚需”. 本序列我们也从一个需求问题开始:然后,拆解需求(问题):其次,解决拆解需求(问题)的点:再次,通过…
本章开始我们正式进入到实战项目开发过程,如何从需求分析获得的实体数据转到模型设计中来,变成Django项目中得模型层.当然,第一步还是在VS2019 IDE环境重创建一个工程项目,本文我们把工程名称命名为IndDemo,如下图: VS2019创建的Django项目结构如下图 现在按F5调试程序,又来到Django熟悉的欢迎页面了. 接下来让开始这趟实战之旅吧! 1.1. 实体关系图 从上一章需求涉及到的实体,来构建我们的实体关系图吧,这里的步骤也相当于早期开发设计的表结构设计,只是如前面章节说的…
本章我们演示代码是如何"进化"的,实战的企业日常开发过程中,系统功能总伴随着业务的不断增加,早期简单的代码慢慢的越来越复杂,敏捷编程中的"禅"--简单设计.快速发布.获得反馈.快速开发的迭代循环过程,如何保证迭代过程持续交互合格的代码,代码重构和单元测试是非常重要的手段.单元测试用来保证重构的代码先满足原来的测试逻辑,代码结构优化满足新的业务需求扩展,然后开发增加新的功能.新的单元测试,每一轮迭代发布新的功能,获取用户反馈- 上一章功能完成的时候,你发现当前的adm…
根据需求定义"任务"是一个完整的业务搬运流程,整个流程涉及到多个机构(设备)分别动作执行多个步骤,所以依据前面的模型设计,需要把任务分解到多个连续的子任务(作业),未来通过顺序串联下达执行的方式来分步骤的完成任务的执行. 1.1. 仓库规划 同样,依据需求我们先来做几个仓库的规划设计,101位置是AGV的入库起始站台,102是提升机门口的入库工位,104是提升机1楼轿厢工位,同理504是提升机在5楼的轿厢工位.左边是5楼的货位区编码规则,完整好的货位号加上楼层编码05-01-01表示五…
笔者也使用过一段时间adminx组件,后来由于adminx停更,又遇到更简单的django-simpleui后,现在基本上只使用simpleui了,使用simpleui的几个好处,笔者认为排在第一位的是于原生admin的兼容性非常高,大量的原生配置基本可以直接用.adminx扩展就需要改很多地方,配置文件也是变成不一样的adminx.py.试用之后,比较喜欢simpleui思路,不知道以后功能多了写复杂了会不会也得走adminx的老路.不过adminx和simpleui等第三方组件都是可以让我们…
前面我们分三章来说明了使用django template与jquery的差别,通过jquery如何来实现前后端的分离,同时再9章节使用vue.js 我们浅尝辄止的介绍了JQuery到vue的切换,由于监控界面没有数据提交,无法很好的体现处我说的vue的优势,所以笔者增加本章节来进一步的对比两者异同点(没有对比就没有伤害),读者可以通过代码去体会vue的优势.vue作为精简版本的MVVM,完成双向绑定后我们编程的时候可以更专注于model本身,而不像JQuery还需要知道DOM元素的标签去读写值.…
上一章节我们完成了"CRUD"的后面3个功能点,新增由于改动较大我们专门增加本章来阐述,主要是完成技术栈切换后,会发现模板的代码判断过多,逻辑过于复杂.对未来存在的扩展和维护友好性严重下降! 1.1. 数据新增 作为企业开发信息管理的核心"增/删/改/查",目前为止我们涉及到了查询.修改和删除,现在我们来讲讲如何通过新增添加数据到系统吧.新增操作与修改删除不一样的就是新增的时候对象未在后台持久化到数据库中获取自身的对象标识,也就是说对象标识是空的或"0&q…
从sql到ORM应该说也是编程体系逐步演化的结果,通过类和对象更好的组织开个过程中遇到的各种业务问题,面向对象的解耦和内聚作为一套有效的方法论,对于复杂的企业应用而言确实能够解决实践过程中很多问题. 1.早期No ORM的做法 这里先跟笔者回忆一下历史,在没有普及使用对象映射层之前,做企业业务系统开发通常是怎么做的呢?首先是不变的当然是需求分析,需求基本确定下来后,就是依据原始业务单据进行数据库表设计了,因为大量的企业信息化系统首先要干的第一件事情就是保存表单\保存表单\保存表单,笔者多年来干过…