赞
踩
Tortoise-ORM提供了bulk_create()
方法,可以用于在单个数据库查询中批量插入多条数据。
下面是一个使用bulk_create()
方法批量插入商品信息到goods表中的示例:
- from tortoise import fields
- from tortoise.contrib.fastapi import register_tortoise
- from tortoise.models import Model
- from tortoise import Tortoise
-
- class Goods(Model):
- id = fields.IntField(pk=True)
- name = fields.CharField(max_length=50)
- price = fields.FloatField()
-
- async def insert_goods(goods_data):
- goods = [Goods(**data) for data in goods_data]
- await Goods.bulk_create(goods)
-
- if __name__ == '__main__':
- Tortoise.init_models(["app.models"], "models")
- register_tortoise(
- app=None,
- db_url="sqlite://db.sqlite3",
- modules={"models": ["app.models"]},
- generate_schemas=True,
- )
-
- goods_data = [
- {"name": "商品1", "price": 100.0},
- {"name": "商品2", "price": 200.0},
- {"name": "商品3", "price": 300.0},
- ]
-
- await insert_goods(goods_data)
这个示例中,bulk_create
方法接收一个列表参数,包含要批量插入的多条数据,并使用**
操作符将数据解包传递给Goods
模型进行创建。通过这种方式,可以在单个数据库查询中批量插入多条数据,提高了插入数据的效率。
如果您需要插入的数据量非常大,可以将数据分成多个小批次批量插入,这样能够降低内存使用,提高程序的稳定性和响应速度。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。