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 官方文档以获取更多信息。如果你有更具体的场景或问题,欢迎进一步询问!