上文简单介绍了主程序相关知识,本文开始介绍项目App相关知识
1. 开始一个项目,
首先要明确需求,理清流程,总结知识点、大体模块。
本文为人力资源考核流程,则数据大体包含四个分支
考核本身信息:考核指标,指标定义,考核部门,考核标准,计算公式,目标值,实际值,得分,评级等
时间类信息:年份,季度周期,创建时间,更新时间,完成时间等
附属信息:填报备注,审核备注,文件上传等
用户基本信息:该账号用户名,登陆地址,所属部门等等
整理所有用到的字段,并理清外键-外键之间的关联关系(比如:部门、用户 是admin中已存在的数据,我们App直接调用即可,则直接管联admin项目的数据即可。做外键处理,本App 公共数据base表保存 外键id,通过id进行映射)
2.创建Model 项目
1.根目录同级,创建Kpi 文件夹,并在 主程序setting ,及 url 中 添加
INSTALLED_APPS\SAFE_URL\urlpatterns
2.kpi 文件夹下创建model.py 文件。
from django.db import models
class KpiBase(models.Model):
assess_dept=models.ForeignKey(Department,verbose_name='考核部门', related_name='assesdept', null=True,
blank=True, on_delete=models.CASCADE, )
..........
class Meta:
verbose_name_plural='KPI'
def save(self, *args, **kwargs):
if not self.id:
super(KpiBase, self).save(*args, **kwargs)
此处举例其中一个字段,需添加所有用到的字段,类型也包含 CharField 、TextField、DecimalField 等等
其中Department 为其他App.model的所属数据,包含部门与用户对应关系
3.编辑好base表字段,则开始利用django框架,自动生成Mysql 中对应数据表
命令:
python manage.py makemigrations kpi
python manage.py migrate kpi
前者为创建更新记录,后者为执行。类似于编译执行的感觉。
执行后,mysql中生成base表及 外键关联关系表。
3.开始开发
下载Bootstrap那些基础前端渲染,存至根目录的plugins下,以便后续调用
开发app下创建url.py。遍历第一个主页地址
创建view.py。 开发第一个方法。def xxx(requset):
if request.method == 'POST':
xxx
else:
xx
return render(request, "xxx.html", args)
开发形式无非是定义一个新方法,对应主页的一个新功能。该方法首先要和url.py 及settings.url.py 打通,确认能访问。
其次 ,方法请求也就是post 和 get ,一般的流程是:先get 获取object 的 符合条件的数据,转到 制定html 做展示。
也就是用户能看到的界面。用户在界面上的一个操作,动态button或hidden 触发 post 请求,回到该方法的post处。比如更新操作,就是利用post 后 get 的数据,id 在object 中筛选出对应的数据,做update 。然后保存后 重定向至 你想要的界面。即完成了保存操作。
总之,知道了流程: def.get -> html ->def.post ->重定向至指定网页。
就能快捷地开发出最通用、实用的小平台。