本文讲解4.0版jxTMS中python服务的jxUtils模块,整个系列的文章请查看:docker版jxTMS使用指南:4.0版升级内容
docker版本的使用,请参考:docker版jxTMS使用指南
jxUtils模块属于jxTMS扩展部分的基础模块,以类函数的形式为其它部件提供支持。
引用:
from jx.jxUtils import jxUtils
jxUtils的类函数主要有:
checkAssert(cls,b,msg,*vs)
判断条件是否成立,不成立则掷出异常
参数:
b:待检查的条件表达式,成立无动作,不成立则掷出异常
msg:条件表达式不成立时所掷出的异常消息模版
vs:可变参数,如果有则以【msg.format(*vs)】的方式填入
返回值:
无
示例:
#属性必须被定义在属性列表中
jxUtils.checkAssert(attr in al,'条件键名【{}】不在数据类【{}】属性列表中',attr,clsName)
CID(cls)
获取全局唯一ID
参数:
无
返回值:
全局唯一ID,整数
说明:
该ID由hostID、时间戳、从1开始的计数器等组成,1秒内可支持64K个ID
Now(cls)
获取系统当前时间戳
参数:
无
返回值:
当前时间,datetime
defaultValue(cls,ty)
获取指定类型的默认值
参数:
ty:指定的数据类型之一:int,float,string,bool,decimal,datetime,json
返回值:
如果ty为上述的指定类型,则:
int:0
float:0.0
string:''
bool:False
decimal:Decimal.from_float(0.0)
datetime:''
json:{}
其它类型则为None
说明:
jxTMS在data文件中定义的数据类,在创建时,所以字段都被设置为Not Null。所以在插入新值时必须为其指定默认值,否则插入失败
transValue(cls,ty,v)
将v转换为ty类型的数据
参数:
ty:指定的数据类型之一:int,float,string,bool,decimal,datetime,json,dict
v:待转换的数值
返回值:
将v转换为相应类型的数据
说明:
如果返回None,说明转换失败
transValue2Int(cls,v)
将v转换为int类型的数据
参数:
v:待转换的数值
返回值:
将v转换为int类型的数据
说明:
如果返回None,说明转换失败或v本身就是None
其它:
transValue2Datetime:转换为datetime
transValue2Float:转换为float
transValue2Bool:转换为bool
transValue2Decimal:转换为Decimal
transValue2Dict:转换为dict
transValue就是根据类型来调用上述函数,但转换为string类型是比较特殊的
transValue2String(cls,v,withQuote=False)
将v转换为string类型的数据
参数:
v:待转换的数值
withQuote:如果v是【dict、str】类型,转换后的数值是否需要用单引号括起来
返回值:
将v转换为string类型的数据
说明:
transValue2String会识别v的类型,然后根据类型将其转换为字符串
如果v本身就是None则返回None。向数据库中插入数据时,字符串、datetime等复杂格式都需要用单引号括起来才能执行成功
transValue在转换str时,是不添加单引号的。所以,在设置ORM对象的值时应使用transValue来确保ORM对象各字段的数据类型是正确的;而在为数据库操作准备sql语句时,都应使用withQuote=True的transValue2String函数来把值正确的转换为可被数据库正确执行的sql语句
注:
这些问题,jxTMS已经充分考虑并已经正确实现了
参考资料:
jxTMS设计思想
jxTMS编程手册
下面的系列文章讲述了如何用jxTMS开发一个实用的业务功能:
如何用jxTMS开发一个功能
下面的系列文章讲述了jxTMS的一些基本开发能力:
jxTMS的HelloWorld