问题标签 [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.
python - PonyORM - 多个模型文件
我想将我的模型类分成模型目录中的单独文件。我想有一个单独的文件:
- 一般(身份验证和全局类/表)
- 申请(用于申请的表格)
- 工单(用于工单的表格)
- sales_orders(用于销售订单的表)
- ...ETC
我不确定如何构建我的项目以实现这一目标。
我已经尝试将我的主要导入放入目录中的init .py 中,然后将它们导入到各个模型文件中,但我不知道将我的 db.generate_mapping() 放在哪里,以便所有类都可用。我猜这是大型应用程序的最佳实践。目前,我的应用程序中有大约 150 个表。
任何帮助/指针将不胜感激。
python - Python Pony Orm 测试表是否为空
我想使用小马 orm 测试表是否为空。
起初我连接到数据库并说生成映射。我在这里使用“名称”表作为示例并连接到 postgres 数据库
我在 Pony Docs 中找不到任何关于检查表是否为空的内容。
上面的行给了我“错误”,因为该表已经存在。有谁知道解决方案?
python - Python Pony ORM一次插入多个值
我正在尝试使用 Pony ORM 将多个值插入到我的 postgres 数据库中。我目前的方法效率很低:
这只是一个简短的示例,但输入的结构是相同的:列表列表。我从几个 xml 文件中提取数据并一次插入一个“文件”。
有谁知道如何将多行数据放入 Pony ORM 中的一个插入查询中?
python - 声明式查询中的 Python Pony ORM 单行属性
我正在尝试在选择查询中使用单行属性。由于
0.7.4 & 0.7.5应该是可能的。简单的操作,如+ (inside value_at_end property)
工作,但我无法使用split()
等。关于 0.7.4 和 0.7.5 更新应该是可能的。
得到错误:
现在我正在使用raw_sql但想制作更多的python,应该可以吗?
感谢帮助!
python - 跨不同 python 模块共享 PonyORM 的 db 会话
我最初启动了一个小型 python 项目(Python、Tkinter 和 PonyORM)并且变得更大,这就是为什么我决定将代码(过去只是单个文件)划分为几个模块(例如 main、form1、entity、database)。Main 作为主控制器,以 form1 为例可以包含一个 tkinter Frame,它可以用作用户可以输入数据的接口,entity 包含 pony.Database 实例的 db.Enttiy 映射和数据库及其连接详细信息. 我认为问题是在导入期间,我收到此错误“pony.orm.core.ERDiagramError:无法定义实体'EmpInfo':已经生成数据库映射”。您能否指出我应该如何完成的任何现有代码。
python - 在 Pony ORM 中增量构建查询
我正在评估从 peewee 切换到 Pony ORM。peewee 中提供的一件好事是能够从以下部分组成查询:
其工作方式是 peewee 模型类型上的各种运算符重载仅返回查询组件树,并且这些子树可以由进一步的运算符重载组成。拥有多个与&
or|
运算符链接在一起的查询组件也是一件简单的事情,例如model.Entry.select().where(some_test() & some_other_test())
. 这非常有用,因为我的许多过滤查询都是以模块化方式组成的,并且大多数底层查询部分经常被重用,而且很多都是不平凡的(例如上面的示例)。
然而,在 Pony ORM 中,似乎只有(非常聪明!)AST 生成器解析器和原始 SQL。由于原始 SQL 表单无法让我直接传递必要的查询部分,因此如果可能的话,我更愿意使用一些更高级别的查询构建功能。
如果我尝试将查询部分定义为模型上的方法,例如:
我明白NotImplementedError
了,毫不奇怪。
是否有一种机制可以从现有部分构建查询表达式,以传递给 SQL 查询构建器?(也许通过自己构建 AST 并将其传递到 Pony 的相关部分,或者有一种机制让我传递一个查询以被另一个子查询过滤。)
python - 如何创建表条目的实例但未在 ponyorm 中添加?
如何在不向相应表中插入行的情况下使用创建表定义的实例。
例如我想要的是:
以上可能吗?我想要这个的原因是我想使用类定义而不向数据库添加项目。这只是一种确保各地用户(在本例中)具有相同属性的非常简单干净的方法。
我最初使用pyDAL
它,我发现设置表非常容易,但我必须定义表,然后还要编写类,所以我搬到了那里,ponyorm
但不清楚我是否能实现我想要的。
谢谢你
更新 1:
一个示例用例是:
- 我正在抓取一个网站
- 我拉入“行”数据
- 如果地址尚不可用
- 创建用户实例
- 不添加它只是将类用作数据的容器
- 如果信息可用
- 创建一个实例,并且仅当记录不存在时才添加它
基本上我希望能够将类用作信息的容器,而不必总是将其添加到数据库中。
python - Pony ORM - 为什么在使用 exists 命令时会出现断言错误?
我有一个相对复杂的结构,我一直在尝试获得一个最小的工作示例,但我无法做到。
我的表结构大致如下:
在表 2 中,当我有等效的代码时composite_key(height, length)
,代码工作正常。但是,当我compmosite_key(height, length, table1)
执行存在语句时,它会返回一个AssertionError
.
我浏览了一些源代码,并在以下几行中找到了一些问题:
我在 0.7.6 版上,安装了pip install pony
1875 年:assert prev_vals != new_vals
在函数中db_update_composite_index
这是因为在第 4151 行:
obj = cache_index.get(pkval)
被错误地拉出(?)。
obj._dbvals_
没有为无的条目。
然后在第 4591 行,如果old_dbval = get_dbval(attr, NOT_LOADED)
old_dbval 默认为 NOT_LOADED,这会导致不删除属性。
这导致进入第if statement
4616 行的循环if any(attr in avdict for attr in attrs)
并在cache.db_update_composite_index(obj, attrs, prev_vals, new_vals)
因为prev_vals == new_vals
nose - 如何在鼻子测试覆盖中忽略 PonyORM 生成器表达式
我nosetests --cover-erase --with-cover --cover-branches
用来运行我的测试用例。
我正在使用 PonyORM 删除一组对象。下面是我的代码的样子。
当我计算覆盖率时,即使我执行remove_all_jobs
. PonyORM 不执行内部的生成器表达式delete(
。
如何忽略生成器表达式并仍然检查delete(
是否调用了?
我发现了什么。
# pragma: no cover
-> 不能使用,因为我需要覆盖delete
[report] exclude_lines
in.coveragerc
也不适用于这种情况。
ponyorm - 如果我通过 sqlite 文件,小马 orm 可以推断数据库结构吗?
问题说了什么。
基本上你可以做类似的事情
并获取 db 中的结构。例如有db.entities
?