Python ORM Bee V1.9.0发布,支持多表关联查询,代码量少,AI写也容易检查

发布时间:2026/7/9 1:06:06
Python ORM Bee V1.9.0发布,支持多表关联查询,代码量少,AI写也容易检查 用 AI 写代码但太多代码检查不过来那就用 ORM Bee, 代码简单明了不用写多余代码轻松 Review!Pythone ORM Bee 让你使用 Python 开发数据库应用更简单让你的 AI 开发真正的智能Flask Bee 开发 python web 系统更加快.几行代码就能让你完成数据库的查改增删:suid Suid() #查询所有记录 orderList suid.select(Orders()) # select all #插入一条记录 suid.insert(orders) #更新删除记录 n1 suid.update(orders) n2 suid.delete(orders)还支持 active record 风格编程use BaseMode for active record type. e.g. class Orders(BaseMode): #__tablename__ orders id:int None name:str None remark:str None def __repr__(self): return str(self.__dict__) if __name__ __main__: orders Orders() orderListorders.select()主要功能V1.9.01.9.0(2026.07)多表查询 (一对一关联)更新cache以支持多表查询主表对象和子表对象的值可转到where多表查询支持Condition参数多表查询支持分页多表查询支持(一对多)多表查询支持(多对一)多表查询支持分页参数指定查询字段参数创建表支持在实体里有多表关联注解joins往期回顾:V1.0 发布V1.1 发布V1.3V1.5.4V1.6.0V1.6.2快速开始:安装依赖包在命令行输入以下命令:pip install ormbeeORM Beepypi 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.dbnameMySQL #bee.db.host localhost #bee.db.user root #bee.db.password #bee.db.database bee #bee.db.port3306 # SQLite bee.db.dbnameSQLite 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_pathE:\\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 stuage add 1 if id5 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. 多表关联查询frombee.bee_enumimportJoinTypefrombee.honeyfactoryimportBFfrombee.annoimportJoinTableimportMyConfig# one to many, layer is 4.# 一对多4层表classVillage: table village s entity id: int None name: str None level: int None remark: str None town_id: int Nonedef__repr__(self):returnstr(self.__dict__)classTown: table town s entity id: int None name: str None level: int None remark: str None city_id: int None village_list None __joins__ { village_list: JoinTable( sub_class Village, joinType JoinType.JOIN, main_fields [id], sub_fields [town_id], is_list True ) }def__repr__(self):returnstr(self.__dict__)classCity: table city s entity id: int None name: str None level: int None remark: str None province_id: int None town_list None __joins__ { town_list: JoinTable( sub_class Town, joinType JoinType.JOIN, main_fields [id], sub_fields [city_id], is_list True ) }def__repr__(self):returnstr(self.__dict__)classProvince: table province s entity id: int None name: str None level: int None remark: str None city_list None __joins__ { city_list: JoinTable( sub_class City, joinType JoinType.JOIN, main_fields [id], sub_fields [province_id], is_list True ) }def__repr__(self):returnstr(self.__dict__)if__name__ __main__: MyConfig.init() province Province() moreTable BF.moreTable() mylist moreTable.select(province)# #查前两条记录# condition BF.condition()# condtion.start(0)# condtion.size(2)# teaList moreTable.select(province, condition)# print(len(mylist))ifmylist:foroneinmylist: print(one)4. 其它功能主要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,uniqueMoreTable :Multi table join Select/Update/Insert/DeletePreparedSql: select, select_dict, modify, modify_dict诚邀您的加入如果您还想添加什么功能请到评论区告诉我们。项目首页https://gitee.com/automvc/BeePy/https://github.com/automvc/BeePy/