Python工业互联网应用实战—模型层构建

本章开始我们正式进入到实战项目开发过程,如何从需求分析获得的实体数据转到模型设计中来,变成Django项目中得模型层。当然,第一步还是在VS2019 IDE环境重创建一个工程项目,本文我们把工程名称命名为IndDemo,如下图:

在这里插入图片描述

VS2019创建的Django项目结构如下图

在这里插入图片描述

现在按F5调试程序,又来到Django熟悉的欢迎页面了。

在这里插入图片描述

接下来让开始这趟实战之旅吧!

1.1. 实体关系图
从上一章需求涉及到的实体,来构建我们的实体关系图吧,这里的步骤也相当于早期开发设计的表结构设计,只是如前面章节说的有了ORM机制后,我们讨论采用对象模型来设计和讨论实体可能更适合于实际的场景讨论,便于团队在同一个频道下沟通,当然这里实质上与表设计没有太多本质的区别,但是多对多等中间表在实体关系图中就看不到了,表结构设计时就不能忽略这个中间表的存在。产品经理更专注于需求而不是数据库存储结构是不是更符合专业分工?开发人员也不用大费周章来折腾表结构的优化了。嗯,这些可以丢给DBA来优化吧。

在这里插入图片描述

1.2. Django model层
为了便于对照学习和理解,我们新增一个新的APP 命名为:Task来专门处理这个业务,不修改默认的APP里的代码,也便于过程中可以通过这个默认APP功能,参照它的结构和语法等。
在这里插入图片描述

现在我们的工程目录结构如下:

在这里插入图片描述

 打开Task.models.py文件编写我们实体关系图的模型代码吧,作者本人比较习惯“大驼峰”命名法也就是首字母都大写的模式TaskNum,后面很多命名都会采用这个方式,不采用python主流的蛇形命名法的task_num方式,纯属个人习惯。我们依据设计我们开始构建我们的model代码如下:

from django.db import models
from django.contrib.auth.models import User

PRIORITY=((1,u’正常’),(2,u’急’),(3,u’紧急’))

class Task(models.Model):
TASK_STATE=((1,u’未处理’),(4,u’处理成功’),(5,u’执行中’),(99,u’完成’),(-1,u’已取消’))

TaskId = models.AutoField(primary_key=True, db_column='task_id')
TaskNum = models.IntegerField(u'任务号', null=False, db_column='task_num')
Source = models.CharField(u'源地址', null=False, max_length=50, db_column='source')
Target = models.CharField(u'目标地址', null=False, max_length=50, db_column='target')
Barcode = models.CharField(u'容器条码', null=False, max_length=50, db_column='barcode')
State = models.IntegerField(u'状态', choices=TASK_STATE, null=False, db_column='state')
Priority = models.IntegerField(u'优先级', choices&#
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值