当前位置: 首页 > 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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 常见反爬及应对
  • C# Socket
  • 多个tomcat同时使用 不设置CATALINA_HOME环境变量
  • Oracle 11.2.0.1升级到11.2.0.4并做rman备份异机恢复
  • 如何用Java写一个整理Java方法调用关系网络的程序
  • 银河麒麟V10 SP1 审计工具 auditd更新
  • 在linux系统centos上面安装php7gmp扩展
  • 【算法专题】双指针算法
  • rider使用libman
  • k8s-第六节-数据持久化
  • JVM(Java虚拟机)详解(JVM 内存模型、堆、GC、直接内存、性能调优)
  • 51单片机基础10——串口实验
  • web前端开发——开发环境和基本知识
  • ROS 2官方文档(基于humble版本)学习笔记(四)
  • leetcode-每日一题
  • 【附node操作实例】redis简明入门系列—字符串类型
  • angular2开源库收集
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • E-HPC支持多队列管理和自动伸缩
  • Go 语言编译器的 //go: 详解
  • JS题目及答案整理
  • php的插入排序,通过双层for循环
  • react-core-image-upload 一款轻量级图片上传裁剪插件
  • React-redux的原理以及使用
  • TCP拥塞控制
  • 编写符合Python风格的对象
  • 听说你叫Java(二)–Servlet请求
  • 小而合理的前端理论:rscss和rsjs
  • 摩拜创始人胡玮炜也彻底离开了,共享单车行业还有未来吗? ...
  • ​Benvista PhotoZoom Pro 9.0.4新功能介绍
  • ​学习笔记——动态路由——IS-IS中间系统到中间系统(报文/TLV)​
  • !!Dom4j 学习笔记
  • !$boo在php中什么意思,php前戏
  • ###项目技术发展史
  • #在线报价接单​再坚持一下 明天是真的周六.出现货 实单来谈
  • (5)STL算法之复制
  • (k8s)Kubernetes 从0到1容器编排之旅
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (第二周)效能测试
  • (二)测试工具
  • (附源码)ssm经济信息门户网站 毕业设计 141634
  • (黑马点评)二、短信登录功能实现
  • (七)Knockout 创建自定义绑定
  • (已解决)Bootstrap精美弹出框模态框modal,实现js向modal传递数据
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (转)nsfocus-绿盟科技笔试题目
  • (转载)hibernate缓存
  • (自用)仿写程序
  • ***详解账号泄露:全球约1亿用户已泄露
  • ... fatal error LINK1120:1个无法解析的外部命令 的解决办法
  • .aanva
  • .NET Framework 3.5安装教程
  • .net 按比例显示图片的缩略图
  • .NET 使用配置文件
  • .net分布式压力测试工具(Beetle.DT)