From a679a798726b3af8b8d439a4afd58c440c0c17e9 Mon Sep 17 00:00:00 2001 From: CACode Date: Fri, 28 May 2021 10:42:54 +0800 Subject: [PATCH] =?UTF-8?q?[1.0.0b3]=E4=BF=AE=E5=A4=8Dwhere=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E7=AC=A6=E5=8F=B7=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- summer/work/orm.py | 36 ++++++++++++++++++++---------------- test/testFunc.py | 6 +++--- 3 files changed, 24 insertions(+), 20 deletions(-) diff --git a/README.md b/README.md index 682025a..cf4aaaa 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 70e0dcd..8a0ea5f 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 4b2e526..eb03a03 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) -- Gitee