在众多python orm框架中,pony orm是一个轻量级的对象关系映射工具,它采用python语言自然、简单的语法,提供了丰富的功能,可以快速地将python对象映射到关系型数据库中实现持久化。
安装首先,我们需要通过pip包管理工具进行安装。
pip install pony
快速入门2.1 连接数据库
首先,我们需要连接一个数据库,pony orm支持多种关系型数据库,包括mysql、postgresql、sqlite、oracle、ms sql server等。下面以sqlite为例。
from pony.orm import *
db = database()
db.bind(provider='sqlite', filename='database.sqlite', create_db=true)
注意,在连接数据库前,需要先定义一个database实例,然后通过bind()方法指定数据库类型和数据库名。如果数据库不存在,则可以使用create_db=true选项自动创建数据库。
2.2 定义实体类
接下来,我们需要定义一个python类,并通过db.entity()装饰器将其转换为实体类。实体类中的属性会被映射为数据库中的表格列,而实体类的实例则对应于表格中的行。
class customer(db.entity):
name = required(str)age = required(int)address = optional(str)
在上述代码中,我们定义了一个customer实体类,并定义了三个属性:name、age和address。其中,name和age为必须属性(required),而address为可选属性(optional)。
2.3 创建表格
创建实体类后,我们需要在数据库中创建相应的表格结构。这可以通过db.generate_mapping()方法来完成。
db.generate_mapping(create_tables=true)
经过上述步骤,我们已经成功地连接了数据库,定义了一个实体类,并在数据库中创建了相应的表格。
增删改查3.1 插入数据
插入数据是一个常见的操作。通过pony orm,我们可以很方便地实现插入数据。
with db_session:
c1 = customer(name='tom', age=20)c2 = customer(name='jerry', age=25, address='new york')flush()
在上述代码中,我们使用with db_session关键字声明一个会话,然后通过实例化customer实体类,创建了两个customer实例c1和c2,并将其赋值给变量。接着,我们调用flush()方法,将实例c1和c2插入到数据库中。
3.2 查询数据
查询数据是orm框架最常用的功能之一。通过pony orm,我们可以使用查询表达式或orm对象来实现查询数据。
查询表达式:
select(c for c in customer if c.age > 20)
在上述代码中,我们使用select()函数指定要查询的实体类。这里我们指定查询customer表中年龄大于20岁的记录。最后,我们使用含有select()函数的with db_session上下文,执行查询操作。
orm对象:
with db_session:
customers = customer.select(lambda c:c.age > 20)for c in customers: print(c.name, c.age, c.address)
在上述代码中,我们使用with db_session关键字声明一个会话,并使用customer.select()查询customer表中年龄大于20岁的记录。查询结果以orm对象表示,我们可以像python对象一样访问其中的属性和方法。最后,我们使用for循环输出查询结果。
3.3 更新数据
更新数据的操作很简单,我们只需要先查询需要更新的记录,然后修改相应的属性值,最后调用flush()方法保存修改后的数据即可。
with db_session:
customer = customer.get(name='tom')customer.address = 'beijing'flush()
在上述代码中,我们使用customer.get()语句查询名为tom的客户记录,然后将其地址修改为北京。最后,通过调用flush()方法,我们将更新后的数据保存到数据库中。
3.4 删除数据
删除数据也很简单,我们只需要先查询需要删除的记录,然后调用其delete()方法即可。
with db_session:
customer = customer.get(name='tom')customer.delete()
在上述代码中,我们使用customer.get()语句查询名为tom的客户记录,然后调用其delete()方法,从数据库中删除该记录。
总结pony orm是一种简单、易用、功能丰富的python orm框架,可以快速地将python对象映射到关系型数据库中实现持久化。在使用pony orm时,我们需要先连接数据库,然后定义实体类,创建表格,最后通过查询表达式或orm对象实现增删改查等操作。对于初学者而言,pony orm是一种非常友好的orm框架,具有较低的学习成本,可以快速入门并开始使用。
以上就是python中的orm框架pony orm详解的详细内容。
