python的简单异步ORM,构建时考虑了关系
postmodel的Python项目详细描述
后模型
简介
Postmodel是一个易于使用的asyncio
ORM(对象关系映射器),灵感来自Django和Tortoise ORM。在
Postmodel提供了90%类似Django-ORM的API,以简化希望切换到asyncio
的开发人员的迁移。在
目前,Postmodel提供以下功能:
- 全活动记录模式
- 乐观锁定
- 100%代码覆盖率
但是,它仍然有一些局限性:
- 仅支持Postgresql
- 没有计划支持SQLite,而是支持RediSQL
- 无支持关系
Postmodel在PostgreSQL的CPython>;=3.6上受支持。在
入门
安装
您必须像这样安装postmodel:
pip install postmodel
快速教程
postmodel的主实体是postmodel.models.Model
。
你可以开始写这样的模型:
在定义了所有模型之后,postmodel需要您初始化它们,以便在模型之间创建向后的关系,并将db客户机与适当的模型相匹配。在
你可以这样做:
frompostmodelimportPostmodelasyncdefinit():# Here we connect to a PostgreSQL DB.# also specify the app name of "models"# which contain models from "app.models"awaitPostmodel.init('postgres://postgres@localhost:54320/test_db',modules=[__name__])# Generate the schemaawaitPostmodel.generate_schemas()
这里我们创建到Postgres数据库的连接,然后我们发现并初始化模型。在
Postmodel当前支持以下数据库:
- PostgreSQL(需要
asyncpg
)
generate_schema
在空数据库上生成架构。默认情况下,Postmodel在安全模式下生成模式
包含IF NOT EXISTS
子句,因此可以将其包含在主代码中。在
之后,您可以开始使用您的模型:
# Create instance by savebook=Book(id=1,name='Mastering postmdel',tag="orm")awaitbook.save()# Or by .create()awaitBook.create(id=2,name='Learning Python',tag="python")# Querybooks=awaitBook.filter(tag="orm").all()assertlen(books)==1
贡献
请看一下Contribution Guide <docs/CONTRIBUTING.md>
\
许可证
这个项目是在MIT许可下授权的-请参阅LICENSE <LICENSE>
\u文件了解详细信息
- 项目
标签: