问题标签 [ponyorm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
15486 浏览

python - How Pony (ORM) does its tricks?

Pony ORM does the nice trick of converting a generator expression into SQL. Example:

I know Python has wonderful introspection and metaprogramming builtin, but how this library is able to translate the generator expression without preprocessing? It looks like magic.

[update]

Blender wrote:

Here is the file that you're after. It seems to reconstruct the generator using some introspection wizardry. I'm not sure if it supports 100% of Python's syntax, but this is pretty cool. – Blender

I was thinking they were exploring some feature from the generator expression protocol, but looking this file, and seeing the ast module involved... No, they are not inspecting the program source on the fly, are they? Mind-blowing...

@BrenBarn: If I try to call the generator outside the select function call, the result is:

Seems like they are doing more arcane incantations like inspecting the select function call and processing the Python abstract syntax grammar tree on the fly.

I still would like to see someone explaining it, the source is way beyond my wizardry level.

0 投票
1 回答
1021 浏览

python - Pony ORM 报告记录“在当前事务之外更新”而没有其他事务

代码很简单,如下:

pony.orm 报告异常:pony.orm.core.CommitException:对象 TryUpdate[1] 在当前事务之外更新。但是根本没有其他事务在运行

正如我的实验所示,只要将 tt 更改为与原始值不同的值,pony 就可以正常工作,但是当 tt 设置为等于原始值时,它总是会报告异常。

我不确定这是否是一个设计决定。我是否必须在每次分配前检查我的输入值是否更改?或者我能做些什么来避免这个恼人的异常?

我的小马版本:0.4.8

非常感谢~~~

0 投票
2 回答
486 浏览

python - PonyORM 0.4.8 引发 NameError:未定义名称 xx

我的程序出现了一个奇怪的问题,异常堆栈是:

所以代码是:

ORM框架是Pony,但我认为与此无关。代码可以在其他PC上正常运行。

你能告诉我有什么问题吗?谢谢。

ps

  • Python-2.7.4
  • 小马-0.4.8
0 投票
2 回答
1393 浏览

python - ponyORM:查询问题

我有动态条件的查询,即

所以我为此编写代码:

但是我在执行函数时遇到了这个错误:

0 投票
1 回答
1734 浏览

python - 如何使用 Pony ORM 反映数据库对象?

我有一个现有的 MySQL 数据库,我想使用它来反映PonyORM来反映它。

我知道我可以用SQLAlchemy做到这一点:

有没有类似的方法可以用 PonyORM 做同样的事情?我在网站上找不到有关这方面的信息。

0 投票
2 回答
1825 浏览

python - 由于延迟加载,带有 Pony ORM 的 DatabaseSessionIsOver?

我正在使用 Pony ORM 作为烧瓶解决方案,我遇到了以下问题。

考虑以下:

当我需要 Jinja2 中的结果时——看起来像这样

我得到一个

如果我取消注释该for r in res部分,它工作正常。我怀疑有某种延迟加载没有加载res = q2[:]. 我完全错过了一点还是这里发生了什么?

0 投票
1 回答
1069 浏览

python - How do I see the SQL that ponyorm generates?

In this example:

I need this for debugging purposes, since I would like to see the SQL it generates to a similar query in other ORMs.

0 投票
1 回答
895 浏览

python - 谷歌应用引擎上 psycopg2 的问题

当我尝试在我的谷歌应用引擎应用程序中实现框架 - Pony ORM 时遇到问题。关键是 Pony 使用 psycopg2(PostgreSQL 适配器),当我尝试向数据库发出请求时,它会引发异常 - 它找不到 psycopg2 模块。(在本地 python 环境中 - evrthg 工作正常)好吧,我尝试手动将 psycopg 包文件夹添加到我的项目的根目录,但收到下一个错误:

文件“C:\Users\AcerFull\PycharmProjects\cloudepicerp\psycopg2__init__.py”,第 50 行,从 psycopg2._psycopg 导入 BINARY、NUMBER、STRING、DATETIME、ROWID 文件“C:\Program Files (x86)\Google\google_appengine \google\appengine\tools\devappserver2\python\sandbox.py",第 898 行,在 load_module 中引发 ImportError('No module named %s' % fullname) ImportError: No module named psycopg2._psycopg

_psycopg 文件有扩展名 - “.pyd”,这意味着它不清楚 Python。据我了解,GAE 仅适用于纯 Python 我是 Python 和 Google AppEngine 的初学者,实际上我不知道如何解决这个问题......

0 投票
1 回答
333 浏览

python - Pony ORM 是否完全支持计算/派生字段?

假设我在Pony ORM中有以下模式:

我希望Person实体的salary属性等于:

我的第一个想法是向 Person 实体添加一个属性,如下所示:

这适用于一个简单的查询:

印刷:

但如果我尝试这样的事情:

也许不出所料,我得到:

因为salary不是“真实”属性。有没有办法做这种事情,允许计算字段被视为可以对其进行正常聚合/计算的一流实体?

0 投票
1 回答
888 浏览

python - 如何在 ponyorm 中进行行数?Python

我正在使用这个 Python ORM 在我的应用程序中管理我的数据库:ponyorm.com

我刚刚更改了表中的一个属性,我会给我一个行数,他返回 1 表示 TRUE,0 表示 FALSE。

例如:仅使用 sqlite3 我会这样做: