Pythone ORM Bee操作数据库这两种风格,你喜欢哪

Pythone ORM Bee操作数据库这两种风格,你喜欢哪

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()
        orderList=orders.select()

主要功能

V1.6.2

1.6.2(2025.08)
1.condition 支持 like/like_left/like_right,in/not in;
eg: condtion.op ("num", Op.IN, [1,2]); in 可以支持的类型有:list/set/tuple type
2. 更新 cache 的相关配置:cache_never,cache_forever,cache_modify_syn config
3. 增强分页 (LimitOffset)
4. 更新默认的命名类型 (默认改为:不转换 OriginalName)
5. 更新 condition Expression (delete value3,value4)
6. 支持 active record 风格操作数据库
7. 兼容字段名 / 表名使用 SQL 关键字

往期回顾:

V1.0 发布

V1.1 发布

V1.3

V1.5.4

V1.6.0

快速开始:

安装依赖包

在命令行输入以下命令:

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

诚邀您的加入!

如果您还想添加什么功能,请到评论区告诉我们。

项目首页:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值