当前位置: 首页 > news >正文

Python实现Mybatis Plus

Python实现Mybatis Plus

from flask import g
from sqlalchemy import asc, descclass QueryWrapperBuilder:conditions = {}order_by_info = {}def __new__(cls, *args, **kwargs):obj = super(QueryWrapperBuilder, cls).__new__(cls)return objdef __init__(self, obj):self.obj = objself.conditions = {}self.order_by_info = {}@classmethoddef builder(cls, obj=None):""":param obj: 数据库模型类:return:"""return cls(obj)def is_null(self, field):self.conditions[field.key] = None == fieldreturn selfdef is_not_null(self, field):self.conditions[field.key] = None != fieldreturn selfdef eq(self, field, value):if value:self.conditions[field.key] = field == valuereturn selfdef gt(self, field, value):if value:self.conditions[field.key] = field > valuereturn selfdef gte(self, field, value):if value:self.conditions[field.key] = field >= valuereturn selfdef lt(self, field, value):if value:self.conditions[field.key] = field < valuereturn selfdef lte(self, field, value):if value:self.conditions[field.key] = field <= valuereturn self# 新增方法def between(self, field, value):if value and isinstance(value, list):self.conditions[field.key] = field.between(value[0], value[1])return selfdef in_(self, field, value):if value and isinstance(value, list):self.conditions[field.key] = field.in_(value)return selfdef like(self, field, value):if value:self.conditions[field.key] = field.like(f'%{value}%')return selfdef order_by_desc(self, *fields):if fields:for field in fields:self.order_by_info[field.key] = desc(field)return selfdef order_by_asc(self, *fields):if fields:for field in fields:self.order_by_info[field.key] = asc(field)return selfdef filter(self):return [v for k, v in self.conditions.items()]def order_by_filter(self):return [v for k, v in self.order_by_info.items()]def lambda_query(self):return self
http://www.lryc.cn/news/393059.html

相关文章:

  • 卷积神经网络和Vision Transformer的对比之归纳偏置
  • Java之网络面试经典题(一)
  • Failed to download metadata for repo ‘docker-ce-stable‘
  • vant拍摄视频上传以及多张图片上传
  • 如何用手机拍出高级感黑白色调照片?华为Pura70系列XMAGE演绎黑白艺术
  • Cartographer前后端梳理
  • Java面试题系列 - 第3天
  • 【Spring Boot】Spring Boot简介
  • Akamai+Noname强强联合 | API安全再加强
  • 第四届BPAA算法大赛成功举办!共研算法未来
  • 2024第三届中国医疗机器人大会第一轮通知
  • 常见算法和Lambda
  • 自动缩放 win7 远程桌面
  • 微机原理与单片机 知识体系梳理
  • 低音炮内存卡格式化后无法播放音乐文件
  • 手动将dingtalk-sdk-java jar包打入maven本地仓库
  • C++:构造函数是什么东西
  • 工作两年后,我如何看待设计模式
  • 01 Web基础与HTTP协议
  • Java求自然常数e的近似值(课堂实例1)
  • 简过网:什么是咨询工程师?我不允许还有人不知道!
  • 数据泄露时代的安全之道:访问认证的重要性
  • XLSX + LuckySheet + LuckyExcel + Web Worker实现前端的excel预览
  • Java版本迭代的过程(Java面经)
  • 深入了解java锁升级可以应对各种疑难问题
  • C++初学者指南-4.诊断---基础:警告和测试
  • docker使用镜像jms_all部署jumpserver
  • 在Java项目中集成单元测试与覆盖率工具
  • CTF实战:从入门到提升
  • Spring Boot集成olingo快速入门demo