Pony ORM

对象关系映射器
授权协议 AGPL
开发语言 Python
所属分类 程序开发、 ORM/持久层框架
软件类型 开源软件
地区 不详
投 递 者 彭鸿畅
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Pony ORM 非常有趣. 

Pony 可以将 Python Generators 翻译成 SQL. 

它拥有可视编辑器和模型等其他特性. 

Free for Non-commercial use with paid commercial licenses.

语法:

select(c for c in Customer
         if sum(c.orders.price) > 1000)

翻译成 SQL 后的效果:

SELECT "c"."id"
FROM "Customer" "c"
  LEFT JOIN "Order" "order-1"
    ON "c"."id" = "order-1"."customer"
GROUP BY "c"."id"
HAVING coalesce(SUM("order-1"."total_price"), 0) > 1000
  • Pony是一种高级的对象关系映射器。ORM允许开发人员以对象的形式处理数据库的内容。关系数据库包含存储在表中的行。但是,当使用高级面向对象语言编写程序时,可以以对象的形式访问从数据库检索的数据,这样十分方便。Pony ORM是一个Python语言库,允许您方便地处理在关系数据库中存储为行的对象。 在Python中实现了其他常用的的映射器,如Django和SQLAlchemy,但是Pony的优势在于

  • Pony ORM是一个Python的ORM框架,使用简单,支持多种数据库,如SQLite,MySQL和PostgreSQL等,可以通过Python代码与数据库交互。 下面是使用Pony ORM的完整教程: 安装 使用以下命令安装Pony ORM: pip install pony 连接数据库 在使用Pony ORM之前,需要连接到数据库。以下是连接到SQLite数据库的示例: python fro

  • 钩子函数 pony中有6个钩子函数,可以在对应的时间发生时被触发.最类似的行为就是数据库中的触发器 after_delete 在数据库中删除实体实例后调用。 after_insert 在将行插入数据库后调用。 after_update 在数据库中更新实例后调用。 before_delete 在删除数据库中的实体实例之前调用。 before_insert 在将新创建的对象插入数据库之前,仅对其调用。

  • PonyORM PonyORM allows you to query the database using Python generators. These generators are translated into SQL and the results are automatically mapped into Python objects. Writing queries as Pyth

  • 最近学校里办了python兴趣班,刚学完python的基础语法就讲了这个Pony框架,以下是我上课记录的某些关键点的笔记 Python 2提供了两种字符串类型 - str(字节字符串)和unicode(unicode字符串),而在Python 3中,str类型表示unicode字符串,并且刚刚删除了unicode。 从Pony Release 0.6开始,添加了对Python 3的支持,而不是un

  • 编程本身就是对数据的处理。ORM是学习开发绕不过去的坎儿,今天我们就来聊聊在python的orm框架中,面对Pony和Sqlalchemy该如何选择。我最早学习的框架是django,那时候还是1.x系列主流。感觉django和它的orm的设计理念非常nice,但问题也很明显:深度绑定,单独使用很难。后来逐渐接触到其他的orm框架,比如 peewee,pony, sqlalchemy.其中,能够提供

  • Pony is an advanced object-relational mapper 文档: PyPI: https://pypi.org/project/pony/ Github: https://github.com/ponyorm/pony doc: https://docs.ponyorm.org/ 安装 pip install pony 代码实例 # -*- coding: utf

  • 1 简介: 背景.....屁话少说,进入主题,pony是python的一个orm框架,将数模型对象映射到数据库的半成品,等同于java的mybatis,在python 中将模型映射到数据库的常用框架还有sqlalchemy,flask_sqlalchemy(后面有机写帖子总结这两个) 2 支持的字段类型: 3 字段类型: (1)Required 必须的 (2)Optional 可选的 (3)Pri

  • Python ORM框架Pony 十个非常方便的数据库操作工具,可以以对象的方式从查询数据,今天编写服务端程序过程中遇到了一个问题,之前没有遇到过所以想给大家分享一下。 问题:以对象的方式访问数据库的时候报错: Cannot load attribute BaseSinglePractice[99].Name: the database session is over 主要的意思是与数据库的会话已

  • 链接地址:https://www.jianshu.com/p/25856202df86

  • 链接地址:https://www.jianshu.com/p/9817390fe71d

  • https://www.jianshu.com/p/b82ace60095d

  • https://www.jianshu.com/p/6858be765f41

  • https://www.jianshu.com/p/f491866443d4

  • https://www.jianshu.com/p/41f676532b4b

  • https://www.jianshu.com/p/2db32407d781

  • https://www.jianshu.com/p/14e500aaed0d

  • https://www.jianshu.com/p/cdb326f5b992

 相关资料
  • 主要内容:ORM框架,映射方向,映射类型对象关系映射(ORM)是一种功能,用于通过将对象状态映射到数据库列来开发和维护对象和关系数据库之间的关系。 它能够轻松处理(或执行)各种数据库操作,如插入,更新,删除等。 ORM框架 以下是在ORM机制上运行的一些框架 - Hibernate (参考:http://www.yiibai.com/hibernate ) TopLink ORMLite iBATIS JPOX 映射方向 映射方向可分为

  • 在本书的这一部分中,我们将介绍一些内容,它们与本书其余部分的结构不相符,但对于初级开发人员来说,这是非常必要的主题。了解如何在 SQL 数据库中构造数据,会教给你如何在逻辑上思考数据存储需求。有一个建立已久的方法来解构数据,有效存储数据和访问数据。近年来 NoSQL 数据库的发展使其不同,但关系数据库设计背后的基本概念仍然有用。在你需要存储数据的每个地方,都需要良好地构造并理解数据。 大多数这些练

  • 我想知道Mapstruct是否以及如何帮助映射具有双向关系的ojects(在我的情况下是一对多): 从/映射到实体会产生。(我希望这会发生)。另一方面,封闭的Mapstruct问题469和1163似乎意味着Mapstruct不会直接支持它。我尝试了这个例子: https://github.com/mapstruct/mapstruct-examples/tree/master/mapstruct-

  • 我使用此链接中的以下代码为我的一个数据模型类(JSON到JAXB模型的转换)添加自定义反序列化程序。 我想使用com。fasterxml。杰克逊。jaxrs。json。JacksonJaxbJsonProvider,用于其他数据模型的JSON序列化/反序列化。 JacksonJaxbJsonProvider的默认实现非常适合我的JAXB模型,将超类作为抽象类。但是,一旦我提供了自己的自定义Obje

  • 问题内容: 在我的elasticsearch服务器中,我只有一个索引。 (博客)索引包含多种类型。 如:,。 在标签类型中,我创建了1000多个标签,并在帖子类型中创建了10个帖子。 例如:帖子 例如:标签 我想将现有标签分配给博客帖子(即,关系=>映射)。 如何将标签分配给帖子映射? 问题答案: 您可以在Elasticsearch中使用4种方法来管理关系。在Elasticsearch博客文章-E

  • 我有一个对象,我正试图映射到。现在这个有一个名为的枚举,其中包含一些值。我想使用将它们映射到中的其他枚举值。以下是我到目前为止的代码: 当我尝试编译它时,我得到了错误:

  • 如果在中只有一组,这将非常好地工作。ASSESSMENT_COMMENT只有两列: 它将完美地代表一对多的关系。 现在问题来了: 那么,1)这是Hibernate中已知的bug吗?2)有办法解决这个问题吗?我可以强制Hibernate创建两个映射表,每个映射表一个吗?请记住,我不能更改类来引用(业务逻辑需求)

  • 这个log比较多 2015-03-30 10:49:49,679 org.nutz.mvc.impl.Loadings.scanModules(Loadings.java:98) DEBUG - module class location 'file:/D:/nutzbook/workspace/.metadata/.plugins/org.eclipse.wst.server.core/tmp