文章目录
-
-
- 1. 安装 Tortoise ORM
- 2. 定义模型
- 3. 初始化数据库连接
- 4. 数据库操作
- 5. 使用 Pydantic 模型
- 6. 关闭数据库连接
- 7. fields类相关操作
-
- 1. `fields.IntField`
- 2. `fields.BigIntField`
- 3. `fields.SmallIntField`
- 4. `fields.CharField`
- 5. `fields.TextField`
- 6. `fields.BooleanField`
- 7. `fields.FloatField`
- 8. `fields.DecimalField`
- 9. `fields.DatetimeField`
- 10. `fields.DateField`
- 11. `fields.TimeField`
- 12. `fields.JSONField`
- 13. `fields.BinaryField`
- 14. `fields.ForeignKeyField`
- 15. `fields.ManyToManyField`
- 16. `fields.OneToOneField`
- 其他字段
- 8. ORM(对象关系映射)数据迁移
-
Tortoise ORM 是一个异步的 ORM 框架,使用 Python 的类和对象来操作数据库,不需要编写 SQL 语句。
1. 安装 Tortoise ORM
首先,确保已经安装 Tortoise ORM。如果还没有安装,可以使用 pip 来安装:
pip install tortoise-orm
2. 定义模型
使用 Tortoise ORM, 需要定义模型类来表示数据库中的表。模型类继承自 tortoise.models.Model
。
from tortoise import fields, models
from tortoise.contrib.pydantic import pydantic_model_creator
class Tournament(models.Model):
id = fields.IntField(pk=True)
name = fields.CharField(max_length=255)
created_at = fields.DatetimeField(auto_now_add=True)
class Meta:
table = 'tournaments' # 自定义表名
# 创建 Pydantic 模型
Tournament_Pydantic = pydantic_model_creator(Tournament, name="Tournament")
3. 初始化数据库连接
在使用 Tortoise ORM 之前,需要初始化数据库连接。
from tortoise import Tortoise, run_async
async def init_db():
# 这里使用 SQLite 数据库作为示例
await Tortoise.init(
db_url='sqlite://db.sqlite3',
modules={
'models': ['your_app']} # 你的模型所在的模块
)
# 生成数据库表结构
await Tortoise.generate_schemas()
# 运行初始化函数
run_async(init_db())
4. 数据库操作
定义好模型和数据库连接后,可以进行各种数据库操作。
4.1 创建数据
async def create_tournament():
tournament = await Tournament.create(name='New Tournament')
print(f'Created tournament with id: {
tournament.id}')
run_async(create_tournament()