歪小球吧 关注:24贴子:1,073
  • 0回复贴,共1

尚学堂人工智能机器课程百度云, 七月算法机器学习项目版视频

只看楼主收藏回复

尚学堂人工智能机器课程百度云, 七月算法机器学习项目版https://docs.qq.com/doc/DS3h5RFpjSVZDWGFY

根据具体需求和业务,定义实体类,如Developer(开发人员)。需要保存开发人员的
编号(code),姓名(name),描述(desc),类型(type如Android,后台等)。
编写Developer类,按1、准备工作中说明要实现三个基类:db.Model, JsonModel, DbOperate,其中增加ID主键,自增。
其中date_created:为创建进时间,
date_modified:为修改时间,密码为操作当前时间。
将Developer放在App\models.py中,现在开始编写入口路径路由,以及定义Resource。
在app\api\__init__.py中导入DevelopersResouce以及DeveloperResouce,从而配置好路由。
现在主要面对的是DevelopersResouce和DeveloperResouce,代码如下:
现在的问题是基类IDResource和IDsResource到底做了些什么?
为什么能达到不用编写代码就可以实现四个Http动词五个动作,先看代码:
相同代码出现时就应该考虑提取函数,拥抱变化,将变化的和不变的分开,通过多态或泛型等能想到的办法去保证只有一份代码。
先看IDsResource,实现了get和post方法,其中get方法相对简单,只需要cls类。由于Python无法像Java、C#这样写泛型,所以人为定义一个方法 def getModel(self),实现IDsResouce的子类override该方法,从而达到子类使用具体的类。也将变化的部分和不变的部分分开。尤其是Post方法,还做了很多预留,checkpost是在保存前进行检测,比如code不能重复,就需要子类重写该方法,而prepost是保存前操作,afterPost则是保存后操作。
IDResouce相对来说比较简单,只有Put方法有一些复杂的操作,其实在delete时也应该有预留方法,比如关联的表数据也要删除,这里只要是Demo,所以没有处理。比如IDsResouce的get方法也没有做分页处理。


1楼2020-10-28 17:52回复