TORTOISE_ORM增删改查
Tortoise ORM 是一个异步的 ORM(对象关系映射)库,适用于 Python 的 asyncio 生态系统。它旨在与流行的异步框架如 FastAPI、Quart 等一起使用,并且提供了简单易用的 API 来进行数据库操作,包括增、删、改、查等基本操作。
配置 Tortoise ORM
首先,你需要在项目中配置 Tortoise ORM。这通常涉及到定义模型和配置数据库连接。以下是一个简单的例子:
Python
from tortoise import Tortoise, fields, run_async
from tortoise.models import Model
class User(Model):
id = fields.IntField(pk=True)
name = fields.CharField(max_length=50)
email = fields.CharField(max_length=100)
async def init():
# 这里配置数据库连接
await Tortoise.init(
db_url='sqlite://db.sqlite3',
modules={'models': ['__main__']}
)
# 生成数据库表结构
await Tortoise.generate_schemas()
# 运行初始化函数
run_async(init())
增 – 创建记录
要向数据库添加新记录,可以创建模型类的新实例并调用 save() 方法或使用 create() 方法。
Python
# 使用 save 方法
user = User(name="John Doe", email="john@example.com")
await user.save()
# 或者使用 create 方法
user = await User.create(name="Jane Doe", email="jane@example.com")
#如果你想通过一个字典来创建对象,可以结合 **kwargs 使用:
data = {"name": "Bob", "email": "bob@example.com"}
user = await User.create(**data)
删 – 删除记录
可以通过查询到特定记录后调用 delete() 方法来删除记录。
Python
# 查询用户 user = await User.get(id=1) # 删除用户 await user.delete()
你也可以直接根据条件删除记录:
Python
await User.filter(name="John Doe").delete()
改 – 更新记录
更新记录也很简单,修改模型实例的属性值然后调用 save() 方法即可。
Python
# 获取用户 user = await User.get(id=1) # 修改用户信息 user.email = "john_new_email@example.com" # 保存更改 await user.save()
或者使用 update() 方法批量更新:
Python
await User.filter(name="John Doe").update(email="new_email@example.com")
查 – 查询记录
Tortoise ORM 提供了多种方法来查询数据库中的数据。
获取单个对象:get()
Python
user = await User.get(id=1)
过滤查询:filter()
Python
users = await User.filter(name__icontains="doe").all()
排序:order_by()
Python
users = await User.all().order_by('name')
限制返回结果数量:limit()
Python
users = await User.all().limit(10)
分页:结合 offset() 和 limit()
Python
page_size = 10 page_number = 2 users = await User.all().offset((page_number - 1) * page_size).limit(page_size)
以上就是使用 Tortoise ORM 进行增删改查的基本操作。Tortoise ORM 还支持更多高级功能,比如事务管理、复杂查询等,具体可以参考Tortoise ORM 官方文档以获取更多信息。如果你有更具体的场景或问题,欢迎进一步询问!

