Tortoise-ORM集成

Tortoise-ORM集成

Tortoise-ORM里面都是异步函数,跟之前的django有一点类似,但是并不完全相同,支持外键,一对一,多对多等关系类型。
装饰器.方法(“路径”)
async def 函数名():
await 表名.方法(参数)

新建一个appPython软件包,在app里新建一个Python文件,然后把这个项目的配置写在里面,再app里面新建一个models和routersPython软甲包,在models软件包里面新建python文件用于创建你所需要的模型,首个模型用aerich init -t app.config.TORTOISE_ORM初始化迁移,然后用aerich inti-db生成数据库中的表,之后创建新表时就可以用aerich migrate方法迁移,用aerich upgeade生成数据库表,生成表之后开始写对表的增删改查操作,在routers软件包中新建api或任意名字的python文件用于对表进行操作,在文件中通过APIRouter方法生成一个路径,然后通关get方法对表进行查询,但是要在函数前加上aysnc,并且执行sql操作时,得在前面加上await。执行添加和修改操作时,得再app中新建一个schemas软件包,在里面新建python文件,然后写你要添加的数据和修改的数据,添加和修改不能用同一个方法,删除操作是直接传你要删除的那条数据的id,通过delete方法直接删除即可。然后还学习了一对一表,外键字段用fileds.OneToOneField(“models.要关联的表名”,related_name:“反向查询的名字”),通过get方法查询两表时,用prefetch_related(“自己定义的反向查询的名字”),新建一个空列表,对这个得到的列表进行循环,然后将里面的字段赋值到一个新字典里,外键字段设置为空,如果这个外键字段是空的话就返回一个none如果不是空,就从新在写一个字典,通过profile这个字段进行反向查询,然后添加到空列表中返回