python的简单异步ORM,构建时考虑了关系

postmodel的Python项目详细描述


后模型

FOSSA Status

简介

Postmodel是一个易于使用的asyncioORM(对象关系映射器),灵感来自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。 你可以开始写这样的模型:

^{pr2}$

在定义了所有模型之后,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文件了解详细信息

FOSSA Status

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
构造函数的java条件调用   类Dog中的java构造函数Dog不能应用于给定类型   java jsch和运行“sudo su”   java将队列和堆栈相互复制   java如何在netbeans项目的文件夹中添加库   java While循环在我的代码中不存在   如何在XML中使用java方法的返回值   java是否可以在不写入文件的情况下将字符串/字节数组作为文件发布?   java为什么这些字符串不相等?   sockets客户机-服务器java编程,用户可选择   java如何在SpringMVC和hibernate中保存模型返回视图的列表   java如何修复组织。openqa。硒。WebDriverException:未知错误   Java,Ant错误:编码Cp1252的不可映射字符   JAVAlang.ClassCastException:[Ljava.lang.String;与java.lang.String不兼容   java如何使用JDK8(可选)为空字段创建自定义IntelliJ getter模板   java Tomcat6响应。sendRedirect()404错误