Python ORM Bee V1.6.0 发布,拦截器/缓存/复杂 where 条件/高效 Update
Pythone ORM Bee 是基于 Python 的 ORM 工具;让你使用 Python 开发数据库应用更简单!
Flask + Bee 开发python web系统更加快.
几行代码,就能让你完成数据库的查改增删:
suid = Suid()
#查询所有记录
orderList = suid.select(Orders()) # select all
#插入一条记录
suid.insert(orders)
#更新,删除记录
n1 = suid.update(orders)
n2 = suid.delete(orders)
主要功能
V1.6.0
1.6.0(2025·劳动节)
- 优化BeeSql
- 增强代码
- 增加命名转换支持
- 增加拦截器支持
- 记录sql执行时间
可配置当sql执行时间小于一定值时不打印 - 调整select_by_id,delete_by_id:
def select_by_id(self, entity_class, *ids)
def delete_by_id(self, entity_class, *ids) - PreConfig.config_path用于设置配置文件/Sqlite数据库文件所在的路径
- 支持复杂的where语句构造器Condition
e.g. name!='aaa',age>=10, like, between,group by,having,order,paging(start,size) - 支持Update Set设置更新的表达式构造器Condition
- select查询支持指定要查询的字段
- 处理查询的Result结果;
- 转换设置参数的类型
- 缓存支持
缓存key支持使用md5 - 查询结果bool类型结果转换
- config 完善
- 支持python版本:3.8.10+
- generate bean/entity file
- bean/entity中间类型支持
- 缓存实体field_and_type
- 面向对象方式,创建表时,支持在实体声明唯一约束的字段和不允许为空的字段:
unique_key={"name","type"}
not_null_filels={"name","type"}
往期回顾:
快速开始:
安装依赖包
在命令行输入以下命令:
pip install ormbee
ORM Bee pypi url:
https://pypi.org/project/ormbee/
1. 配置db连接信息
1. 配置db连接信息 1.1.can custom your db Module in bee.json or bee.properties set dbModuleName { "dbname": "SQLite", "database": "bee.db", //default support: pymysql,sqlite3,cx_Oracle,psycopg2 (no need set) "dbModuleName":"sqlite3" } #value is: MySql,SQLite,Oracle, #MySQL config #bee.db.dbname=MySQL #bee.db.host =localhost #bee.db.user =root #bee.db.password = #bee.db.database =bee #bee.db.port=3306 # SQLite bee.db.dbname=SQLite bee.db.database =bee.db 1.2.if do not want to use the default config file(bee.json or bee.properties), can set the db_config info yourself. # #mysql dict_config = { 'dbname':'MySQL', 'host': 'localhost', # 数据库主机 'user': 'root', # 替换为您的 MySQL 用户名 'password': '', # 替换为您的 MySQL 密码 'database': 'bee', # 替换为您的数据库名称 'port':3306 } honeyConfig= HoneyConfig() honeyConfig.set_db_config_dict(dict_config)
2. 使用Bee操作数据库
2. 使用Bee操作数据库 class Orders: id = None name = None remark = None # can ignore def __repr__(self): return str(self.__dict__) # also can use field type as :int class Orders8: __tablename__ = "orders" id:int = None name:str = None remark:str = None def __repr__(self): return str(self.__dict__) class Student2: id = None name = None age = None remark = None addr = None def __repr__(self): return str(self.__dict__) from bee.api import Suid, SuidRich from bee.config import PreConfig from bee.honeyfactory import BF from bee.osql.bee_enum import Op if __name__ == "__main__": # set bee.properties/bee.json config folder PreConfig.config_path="E:\\Bee-Project\\resources" # select record suid = Suid() orderList = suid.select(Orders()) # select all # insert orders = Orders() orders.id = 1 orders.name = "bee" orders.remark = "test" suid = Suid() suid.insert(orders) # update/delete orders = Orders() orders.name = "bee130" # For safety reasons # Fields that are not present in the entity will be ignored. orders.ext = "aaa" orders.id = 1 suid = Suid() n1 = suid.update(orders) n2 = suid.delete(orders) print(n1) print(n2) # batch insert student0 = Student2() student0.name = "bee" student1 = Student2() student1.name = "bee1" student1.addr = "" student1.age = 40 entity_list = [] entity_list.append(student0) entity_list.append(student1) suidRich = SuidRich() insertNum = suidRich.insert_batch(entity_list) print(insertNum) #how to use Condition for advanced query and update condition = BF.condition() condition.op("age", Op.ge, 22) condition.op("remark", Op.eq, None) stuList = suidRich.select(Student2(), condition) # select ... from student2 where age >= ? and remark is null for stu in stuList: print(stu) # all stu'age add 1 if id>5 condition = BF.condition() condition.setAdd("age", 1) condition.op("id", Op.ge, 5) updateNum = suidRich.updateBy(Student2(), condition) # update student2 set age = age + ? where id >= ? print("updateNum:", updateNum) #SuidRich: insert_batch,select_first,updateBy #复杂的where过滤条件、group,having,order by,Update Set等可使用Condition; 3. 其它功能 主要API在bee.api.py Suid: simple API for Select/Update/Insert/Delete SuidRich : select_paging, insert_batch, updateBy, select_first,select_by_id, delete_by_id,select_fun,count,exist,create_table,index_normal,unique PreparedSql: select, select_dict, modify, modify_dict
诚邀您的加入!
如果您还想添加什么功能,请到评论区告诉我们。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Java 库 wast v0.0.26 发布
WAST 是一个高性能 Java 工具集库包,包括 JSON、YAML、CSV、HttpClient、JDBC 和 EL 引擎. JSON全场景性能优化到了极致,全场景包括 JDK6-JDK24,内容包括短 JSON,中长 JSON 以及超长 JSON 读写性能,以及输入流按需解析等等。 源码地址 gitee:https://gitee.com/xiaoch0209/wast github:https://github.com/wycst/wast 性能测试: gitee:https://gitee.com/xiaoch0209/wast-jmh-test github:https://github.com/wycst/wast-jmh-test JSON 与 simdjson-java 对比:JSON 性能测试之二 - wastjson 每秒 6GB 解析速度完胜 simdjson-java 表达式性能测试 1:WastEl 表达式引擎性能测试 - 每秒千万次运算超强性能 - OSCHINA - 中文开源技术交流社区 表达式性能测试 2:express-benchmark・闲。大赋...
- 下一篇
DjangoAdmin 敏捷开发框架 FastAPI+EleVue 版本 v2.5.0 发布
v2.5.0 更新内容:1、优化鉴权中间件,支持非管理员鉴权认证;2、解决权限节点列表失效问题;3、优化用户模块,支持动态获取添加用户主键;4、优化菜单模块,支持动态获取添加菜单主键;5、优化获取模块详情路由规则;6、优化模块详情方法权限节点;7、优化单图组件,新增图片地址判空;8、优化城市表单验证,移除上级 ID 判空;9、优化开关组件,支持入参控制其他控件;10、优化广告模块,支持广告封面可以为空;11、优化栏目模块,支持栏目图片可以为空;12、修复近期用户反馈的问题; 一款基于 Fastapi、Vue、ElementUI、MySQL 等技术栈研发的前后端分离开发框架,设计之初就定位为一款高端产品,采用全新的架构设计,后端服务和前端都是采用全新的设计方案,兼容手机、PAD 和 PC 电脑端,具备良好的用户使用体验;框架拥有完善的 (RBAC) 权限架构和基础核心管理模块,权限控制精细化到按钮节点级别颗粒度控制,根据不同的角色分配不同的权限即可实现;为了避免重复造轮子,系统本身已经集成了基础模块,包括常规的权限管理、字典、配置、行政区划等等常规模块;开发者可以基于框架做二次开发,可以...
相关文章
文章评论
共有0条评论来说两句吧...