diff --git a/README.md b/README.md index 682025a6452c9fd917cdd41d9de18ebe8b70b738..cf4aaaac63e04ce9a373e930b9661e58e3fa1408 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ # 介绍
- Aestate Framework 是一款允许你自定义sql操作语法的orm (Object Relational Mapping)框架, 可以尽情发挥你的想象力,创造出属于你自己的sql操作方式。通过内置`DBUtils`来达到数据库操作和缓存,内置`simplejson`用于序列化和反序列化。 + Aestate Framework 是一款允许你自定义sql操作语法的ORM (Object Relational Mapping)框架, 可以尽情发挥你的想象力,创造出属于你自己的sql操作方式。通过内置`DBUtils`来达到数据库操作和缓存,内置`simplejson`用于序列化和反序列化。 修改后的`simplejson`非常强大,通过`aestate.cacode.Serialize.JsonUtil`获得json工具类, 可达到将`object`类型的数据解析成json字符串或者反序列化为字典格式。 将最大限制的保留原始操作方式,允许工程师自定义一些特殊语法模板。支持分库分表多线程多进程执行,支持所有遵守DB-API2的数据库创建者
diff --git a/summer/work/orm.py b/summer/work/orm.py index 70e0dcd546731e84bae25469912b01c7c925c0e8..8a0ea5f7d637a4cd5dd774aed2de0ee205d9871c 100644 --- a/summer/work/orm.py +++ b/summer/work/orm.py @@ -209,25 +209,29 @@ s """ cp_key = key customize = False sym = '=' + + # TODO:1.0.0b2 不能双选符号 BUG + # TODO: 1.0.0b2 只能跑一个 BUG + if len(str(value)) > 2 and str(value)[0:2] in self.sqlFields.symbol: sym = value[0:2] value = str(value)[2:len(str(value))] - elif sym == '==': - sym = '=' - elif sym == '>>': - sym = '>' - elif sym == '<<': - sym = '<' - else: - # 没有找到符号的话就从字段名开始 - # 截取最后一段从两段下划线开始的末尾 - sps = cp_key.split('__') - if not len(sps) == 1: - customize = True - sym = sps[len(sps) - 1] - self.ParseUtil.fieldExist(self.ParseUtil, 'adapter', raise_exception=True) - cp_key = cp_key[:cp_key.rfind('__' + sym)] - self.ParseUtil.adapter.funcs[sym](self, cp_key, value) + if sym == '==': + sym = '=' + elif sym == '>>': + sym = '>' + elif sym == '<<': + sym = '<' + else: + # 没有找到符号的话就从字段名开始 + # 截取最后一段从两段下划线开始的末尾 + sps = cp_key.split('__') + if not len(sps) == 1: + customize = True + sym = sps[len(sps) - 1] + self.ParseUtil.fieldExist(self.ParseUtil, 'adapter', raise_exception=True) + cp_key = cp_key[:cp_key.rfind('__' + sym)] + self.ParseUtil.adapter.funcs[sym](self, cp_key, value) if not customize: self.args.append('`{}`{}%s'.format(cp_key, sym)) diff --git a/test/testFunc.py b/test/testFunc.py index 4b2e526d5e39d7c51d2556443e08d188a46f3ea4..eb03a03fc103e6762a472eb6c24232425daa822d 100644 --- a/test/testFunc.py +++ b/test/testFunc.py @@ -38,9 +38,9 @@ def TestMySql(): # result = demoTable.find_by_id(t_id=10) # page = result.page(7) # result = page.to_dict() - result = demoTable.orm.find().where(t_id__eq=10).end() - result.add_field('aaaa', True) - result.remove_field('t_id') + result = demoTable.orm.find().where(t_id='<=10', t_name='测试name0').end() + # result.add_field('aaaa', True) + # result.remove_field('t_id') # r_2 = d_2.orm.find(poly=[' FROM ']) # var = r_2 << result info(result)