问题标签 [peewee]

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 投票
2 回答
1290 浏览

python - 如何使用 Peewee 查询几个相似的数据库?

我遇到了一个关于使用 Peewee 查询多个数据库的问题:

  • 我有 2 个现有的 mysql 数据库(我们将它们命名为 A 和 B)(结构相似,因为它是两个 Bugzilla 数据库)
  • 我使用 Pwiz 生成模型(modelsA.py 和 modelsB.py)
  • 我写了这段代码:

.

问题是:由于模型B 中的类(有时)与模型A 相同,模型B 类“覆盖”模型A 类,使得无法查询A。

此外,我不明白如何查询特定数据库之一。例如,使用以下代码:

你怎么知道这个查询将在哪个数据库上执行?

我有一个想法,但对我来说似乎很脏:我可以手动重命名 modelsA.py 和 modelsB.py 中的类以使它们不同,然后编写以下代码:

粗略地说,Peewee 能处理这种情况吗?如果是这样,该怎么做?片段将不胜感激^^谢谢。

0 投票
1 回答
4457 浏览

python - 如何使用peewee limit()?

对于Peewee,我尝试使用以下限制:

然而,这会打印出 5。有人知道这里有什么问题吗?

0 投票
1 回答
1407 浏览

python - peewee:从多对多关系中过滤选择查询结果

我有以下代码

产生这个输出:

这基本上是来自peewee docs的示例

我需要过滤结果并仅选择那些拥有给定子集中所有课程的学生:

我尝试使用IN运算符并修改选择查询,如下所示:

但它会产生错误的结果,这意味着我做错了:

这里有两个错误的地方:

  1. Student2course3没有打印,我需要它。我认为这是因为course3不在课程列表中。
  2. Student4被选中,但它不应该被选中,因为Student4没有course1course2,但course1课程列表中。

是否有可能在一个查询中实现我想要的,或者我必须遍历学生,为每个学生进行SELECT查询,并将他们的课程列表与我的课程过滤器相匹配?

我的目标是得到这个输出:

0 投票
2 回答
2931 浏览

python - 如何使用 Peewee 执行 .where(somecolumn == None/Null/Empty)?

我在我的 Flask 应用程序中使用 peewee,并且我在表中有一个可以为空的列:

我现在想选择 somecolumn 不是 null/None/Empty 的所有记录。我试图用以下方法做到这一点:

不幸的是,两者都不起作用。有人知道我该怎么做吗?欢迎所有提示!

0 投票
1 回答
464 浏览

python - Peewee ORM中如何选择和限制related_name连接?

我将 Flask 与 Peewee ORM 一起使用,我在其中定义了两个表,如下所示:

在分配表中,可以将多个用户分配给一个工单,但只计算最后一个(即,如果分配了一个新用户,则应该忽略之前的用户)。因此,我使用以下方法选择有效票证:

我现在想在我的模板中使用这个循环。但是,对于每次迭代,我还想显示分配的用户。但open_ticket[0].assigned_to显然返回了几个分配,并与它几个用户。

有人知道我如何为循环中的每张票获取最新分配的用户吗?

0 投票
1 回答
7311 浏览

python - 如何使用 peewee/mysqldb 通过 python 查询 MySQL 数据库?

我正在为 App.net 创建一个 iOS 客户端,并且正在尝试设置一个推送通知服务器。目前,我的应用程序可以将用户的 App.net 帐户 ID(一串数字)和 APNS 设备令牌添加到我服务器上的 MySQL 数据库中。它还可以删除这些数据。我改编了这两个教程中的代码:

此外,我已经修改了这个很棒的 python 脚本来监听 App.net 的 App Stream API。

我的 python 太可怕了,我的 MySQL 知识也是如此。我要做的是访问我需要通知的帐户的 APNS 设备令牌。我的数据库表的每个条目都有两个字段/列,一个用于 user_id,一个用于 device_token。我不确定术语,如果我能澄清这一点,请告诉我。

我一直在尝试使用peewee从数据库中读取数据,但我有点不知所措。这是一个带有占位符的测试脚本user_id

然后打印出来:

如果代码没有说清楚,我正在尝试使用 of 查询数据库中的行,user_id并且1234我想将device_token同一行的行(同样,可能是错误的术语)存储到一个变量中,我可以当我稍后在脚本中发送推送通知时使用。

如何正确返回 device_token?此外,放弃 peewee 并简单地使用 python-mysqldb 查询数据库会更容易吗?如果是这样的话,我将如何去做呢?

0 投票
1 回答
410 浏览

python - 在 Peewee 中使用 optgroup 生成选择

我在带有 Peewee ORM 的烧瓶应用程序中有以下模型:

我想生成一个多选字段,其中每门课程都是一个 optgroup,每个活动都是 Jinja 的 opgroup 中的一个选项。

说我有这样的事情:

  • 课程一
    • 活动一
    • 活动二
    • 活动三
  • 课程二
    • 活动四
    • 活动五

即Activity I、II和III中的ForeignKeyField指向Course I,而Course II中的ForeignKeyField指向Activity IV和V。

我的 Flask 应用程序中有以下视图:

我想得到这样的东西:

在 Jinja 中没有 optgroup 部分很容易得到这个:

但我不知道如何在 optgroup 中获取 Course.name 字段,然后在此 optgroup 中的选项中,其 ForeignKeyField 指向该课程的活动。我能想出的唯一解决方案是在 for 循环中运行所有课程,然后在该 for 循环中使用另一个 for 循环来运行所有活动并在 activity.Course.name 字段与 course.name 匹配时生成一个新选项,但这是非常低效的,因为您必须遍历每门课程的所有活动。

有没有一种简单有效的方法来生成这个选择框?

0 投票
2 回答
9843 浏览

sql - Peewee (SQL) 中的字符串匹配

我正在尝试在 Peewee 中查询应该包含特定子字符串的结果。

例如,如果我只想要名称中带有“物理”的活动:

上面的例子没有给出任何错误,但不能正常工作。

在 python 中,我会这样做if "Physics" in Activity.name,所以我正在寻找可以在查询中使用的等价物。

0 投票
1 回答
2546 浏览

sql - AttributeError: 'bool' 对象在带有 SQLite 的 Peewee 中没有属性 'clone'

我正在尝试获取以下查询:

这不会给我任何错误,但会出现以下任何错误:

给我以下错误:

如果我试试这个:

它会告诉我:

我觉得这很令人困惑,因为:

工作得很好,虽然它看起来非常类似于我正在尝试做的事情。

我完全不知道这可能意味着什么,我在文档中找不到任何东西。'bool' 对象可能代表布尔值,但我看不到我的查询结果是布尔值。我也不知道“克隆”是什么意思,也不知道如何解决这个错误。

0 投票
0 回答
80 浏览

sql - 检查SQL中任何一行是否不匹配

现在,如果 StuActIgnore.activity 在此查询中有三行,那么它将使每个“通过”的会话输出 3 次。它将每个 Session 与StuActIgnore.activity 中的每一行进行比较。我知道出了什么问题;我只是不知道如何解决它。

我想要这样的东西:

那是; 如果 Activity.id 与任何StuActIgnore 行都不匹配,则将 Session 添加到查询中。我写的代码不起作用,因为 ForeignKeyField 不可迭代。

编辑:我尝试按如下方式修复它:

因为这个related_name(“ignoredactivities”)是可迭代的,但这似乎也不起作用。

EDIT2:我通过添加一个单独的 for 循环使其工作。它有效,但既不高效也不优雅:

有没有更优雅的方式来做同样的事情?