计算 sqlalchemy 模型中的相关项数

2024-02-20

我正在尝试计算各自类别中的项目数量,并最终得到一个可以在 jinja 模板中迭代的集合。我的最终输出是这样的:

类别1、5

类别2、10

类别3, 0

零物品案例很重要。

我的模型是:

class Category(Base):

    __tablename__ = 'category'

    id = Column(Integer, primary_key=True)
    name = Column(String(80), unique=True)
    user_id = Column(Integer, ForeignKey('user.id'))
    user = relationship(User)


class Item(Base):

    __tablename__ = 'item'

    id = Column(Integer, primary_key=True)
    name = Column(String(80))
    description = Column(String(500))
    category_id = Column(Integer, ForeignKey('category.id'))
    category = relationship(Category)
    user_id = Column(Integer, ForeignKey('user.id'))
    user = relationship(User)
    date_added = Column(DateTime, default=datetime.datetime.now)

我已被善意地指出了方向Stackoverflow:计算 SQLAlchemy 中的关系 https://stackoverflow.com/questions/25500904/counting-relationships-in-sqlalchemy,这让我想到了这个问题

count_categories = db_session.query(Category.name, func.count(Item.id)).join(Item.category).group_by(Category.id).all()

这几乎是正确的,但是它不处理零情况。当类别有零个项目时,我仍然需要查询返回的类别。

任何帮助,非常感谢。


其实我已经想通了:

count_categories = db_session.query(
        Category.name, func.count(Item.id)).outerjoin(
        Item).group_by(Category.id).all()

See 有关连接的 SQLAlchemy 文档 http://docs.sqlalchemy.org/en/rel_1_0/orm/tutorial.html#querying-with-joins

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

计算 sqlalchemy 模型中的相关项数 的相关文章

  • 通过 Paramiko SSH 的 SQLAlchemy

    我的服务器上有一个数据库 我需要通过 SSH 访问该数据库 现在我通过使用命令行来获取数据来处理数据库 import paramiko ssh paramiko SSHClient ssh set missing host key poli
  • SQLAlchemy 声明式 + 跨多个不同数据库的关系

    我花了一段时间 但我弄清楚了如何使用 SQLAlchemy 对两种不同类型的数据库之间的关系进行建模 Base declarative base class Survey Base tablename SURVEY survey id Co
  • sqlalchemy:创建关系但在数据库中没有外键约束?

    Since sqlalchemy orm relationship 已经暗示了这种关系 我不想在数据库中创建约束 我应该怎么办 目前 我在 alembic 迁移后手动删除这些约束 而不是定义 模式 级别ForeignKey http doc
  • 使用bulk_insert_mappings

    我正在尝试批量插入以下形式的大量字典列表 results attribute u SEX value d 0 0 value s u M sid 1L attribute u SEX value d 0 0 value s u M sid
  • 使用日期作为窗口函数实现 RANGE

    从 SQLAlchemy 1 4 25 开始 没有内置支持 所以我尝试使用该解决方案here https stackoverflow com a 69606048 11277108 这是我的复制 from datetime import d
  • Flask-SQLAlchemy .count() 和 .all() 的记录计数不同

    在 SQLAlchemy 中 ModelName query filter by field name value count 返回正确的记录数 但是ModelName query filter by field name value al
  • 是否可以在 SQLAlchemy 中创建一个可以创建父记录的事件侦听器?

    有两个表 父表和子表 我想创建一个事件监听器 触发器 如果孩子没有父母 它可以创建父母 这就是我试图做的 class parent db Model tablename parent id db Column db Integer prim
  • 映射器无法组装任何主键列

    我从 sqlite 表创建了一个临时表 该表是基于各种选择标准的原始表的子集 屏幕截图中有一个示例 我试图一次循环一个表记录 以便更新每个记录中的字段 我有 source table self source engine create en
  • 使用 JSON 可序列化枚举自动生成棉花糖模式

    创建与我的模型相同的棉花糖模式的日子已经一去不复返了 我发现这个优秀的答案 https stackoverflow com a 42892443 4097322这解释了我如何使用简单的装饰器从 SQA 模型自动生成模式 因此我实现了它并替换
  • sqlalchemy:无法在拆卸时删除数据库

    我正在尝试使用 pytest 进行 sqlalchemy 但遇到以下问题 pytest fixture scope function def my session my db request from my models import Se
  • 如何从 SQLAlchemy 引擎实例获取连接 URL?

    我通过生成一个程序来开始一个程序URL http docs sqlalchemy org en rel 1 0 core engines html highlight url sqlalchemy engine url URL对象并将其传递
  • SQLAlchemy 闭包表关系定义

    我最近开始使用 SQL Alchemy 开展一个涉及攀岩区域和路线的项目 区域是分层的 因为单个区域可以包含多个区域 而多个区域又可以包含其他区域 路线直接与单个区域关联 但也与该区域的父区域关联 等等 为了实现这一点 我选择使用Bill
  • 我的本地 postgresql 数据库 url 的形式是什么?

    我正在学习 Flask sqlalchemy 教程https pythonhosted org Flask SQLAlchemy quickstart html a minimal application https pythonhoste
  • 如何在 Flask-SQLAlchemy 中通过 id 删除记录

    I have users我的 MySql 数据库中的表 这张表有id name and age fields 我怎样才能删除一些记录id 现在我使用以下代码 user User query get id db session delete
  • 打印 sqlalchemy 行

    我想做的就是打印 sqlalchemy 表行的一行 假设我有 from sqlalchemy import Column Integer String from sqlalchemy ext declarative import decla
  • SQLAlchemy - 连接表关系上的 order_by

    我正在使用声明式 SQLAlchemy 并且有三个模型 Role Permission and RolePermission 在我的Role模型 我有以下内容 class Role Base name Column u NAME VARCH
  • Alembic 无法识别 False 默认值

    在维护 SQLAlchemy 数据模型并利用 alembic 进行版本控制时 我所做的以下代码更改导致了空修订 some column Column Boolean nullable False default False 以前是 some
  • 捕获 SQLAlchemy 异常

    我可以使用什么捕获 SQLAlechmy 异常的上层异常 gt gt gt from sqlalchemy import exc gt gt gt dir exc ArgumentError CircularDependencyError
  • 更新 SQLAlchemy 中的特定行

    我将 SQLAlchemy 与 python 一起使用 我想更新表中等于此查询的特定行 UPDATE User SET name user WHERE id 3 我通过 sql alchemy 编写了这段代码 但它不起作用 session
  • 如何确保与 sqlite 和 NFS 的文件安全同步

    我最近将应用程序的工作区文件格式转换为 sqlite 为了确保 NFS 上的稳健操作 我使用了通用更新策略 对本地硬盘上临时位置中存储的副本进行了所有修改 仅在保存时 我才会通过使用临时文件复制原始文件来修改原始文件 可能在 NFS 上 我

随机推荐

  • iOS 推送其他应用的通知

    有没有办法接收所有应用程序的所有推送通知 那么所有通知都显示在通知中心吗 如果是 是否也可以在收到来自任何应用程序的任何推送通知时执行操作 Thanks 编辑 该应用程序是否会被苹果接受并不重要 推送通知将发送到注册接收通知的应用程序 您无
  • 使用 capistrano+nginx 在单个数字海洋 Droplet 中部署多个 Rails 应用程序

    我有一个在 IP xxx xxx xxx xx 的数字海洋服务器上运行的 Rails 应用程序 使用 Capistrano 部署现在很容易运行 现在我正在考虑使用 capistrano 将另一个应用程序部署到同一服务器 经过多次尝试研究我没
  • 应用程序强制退出并重新启动后如何恢复 NSURLSession 下载过程?

    我已经实施了NSURLSession用于从我们的服务器下载相当大的文件 现在 只要我在前台或后台工作并返回应用程序 交易就会正常工作并完成 但如果我强制退出使用多任务屏幕的应用程序 然后再次重新打开应用程序 下载过程尚未完成 尽管据我从文档
  • Twitter Bootstrap 响应式导航栏在小屏幕上损坏

    我一直在阅读文档并将我的代码与 Bootstrap 的示例进行比较 但我无法弄清楚为什么当我缩小浏览器窗口或在手机上查看它时 我网站上的导航栏会下降约 100px http warm ocean 8133 herokuapp com htt
  • 将负颜色数转换为 HEX 或 RGB

    我从未见过像这样的颜色代码 1 16777216 256等等 所以我当前的问题是这样的 我们有一个第三方软件 您可以在其中对值进行颜色编码 如下图所示 现在我正在创建一个显示这些值的 PHP 报告 但我还想使用与软件中定义的颜色相同的颜色来
  • 如何理解卡方列联表

    我有几个分类特征 Gender Married Dependents Education Self Employed Property Area from scipy stats import chi2 contingency chi2 p
  • android DatePickerDialog只显示一个按钮

    我知道有很多问题DatePickerDialog正如这篇文章所解释的Jelly Bean DatePickerDialog 有办法取消吗 https stackoverflow com questions 11444238 jelly be
  • socket.io - 数百个请求而不是一个连接

    我创建了一个简单的应用程序来从socket io开始 但是当我运行它时 Chrome 在其他浏览器中测试 结果相同 占用了我所有的CPU并发出许多请求 我是套接字新手 但我确信这不是它应该如何工作的 在浏览器中运行的代码非常简单 它应该连接
  • MySQL 中的累计计数(*)

    想象一个 SQL 表votes 有两列vote and time vote是一个字符串 time是一个时间戳 我想从表中检索 累积计数 所以 表格看起来像这样 vote time stuart 1443000000 stuart 14430
  • 如何在 PHP 中运行 bind_param() 语句?

    我正在尝试使以下代码正常工作 但无法访问execute line mysqli this gt ConnectLowPrivileges echo Connected br stmt mysqli gt prepare SELECT nam
  • 调试引用 IIS 中运行的 Sqlite 的 ASP.NET Core 应用程序时访问被拒绝

    ASP NET Core 2 2 项目参考Microsoft EntityFrameworkCore Sqlite 2 2 3 as a PackageReference 由于用户进程提升 在 IIS Express 中调试应用程序效果很好
  • 如何运行由“lein jar”命令制作的jar?

    这是后续这个问题 https stackoverflow com questions 3390268 how to setup the classpath when running the jar made from lein uberja
  • 如何获取和设置WPF文本框的当前光标位置

    我想从 WPF TextBox 获取当前光标位置 如果一个TextBox包含文本abhishek并且光标在之后闪烁abhi然后我想要那个索引 以便稍后清除后TextBox以编程方式分配一些其他或相同的文本以编程方式我想让光标在 4 个字符后
  • 金字塔:多个资源工厂——如何

    我有一个简单的根资源工厂 class Root acl Allow Authenticated edit 现在对于一些 特殊 路线 我需要创建另一个资源工厂 config add route special special test fac
  • 如何在Gitlab-ci中登录docker账户

    我已经订阅了 Pro 计划docker https www docker com pricing帐户到提高速率限制 https www docker com increase rate limit在我自己托管的 Gitlab CI 工作中
  • 类“PreferredSizeWidget”不能用作 mixin,因为它既不是 mixin 类也不是 mixin

    升级到 Flutter 3 10 和 Dart 3 后 我收到此错误 类 PreferredSizeWidget 不能用作 mixin 因为它是 既不是 mixin 类 也不是 mixin 当前版本的代码 class MyAppBar ex
  • 自动生成层次结构值

    我有一个带列的树表ID ParentID and Hierarchy并想要生成Hierarchy列值取决于ParentID 为此 我使用触发器 是否存在更好的方法来生成层次结构列值 ALTER TRIGGER TR MyTable Befo
  • 使用 Paramiko 保留时间戳

    使用 Paramiko 将 SFTP 文件从一台服务器传输到另一台服务器时 是否有一种方法可以保留时间戳 类似于 pLinux 中的争论 原始文件 jim vm3634 ls la rwxrwx 1 jim admin 2214 Mar 3
  • 如何列出检查点中的某些变量?

    我正在使用自动编码器 我的检查点包含网络的完整状态 即编码器 解码器 优化器等 我想玩弄编码 因此 在我的评估模式中 我只需要网络的解码器部分 如何从现有检查点中仅读取一些特定变量 以便我可以在另一个模型中重用它们的值 There s li
  • 计算 sqlalchemy 模型中的相关项数

    我正在尝试计算各自类别中的项目数量 并最终得到一个可以在 jinja 模板中迭代的集合 我的最终输出是这样的 类别1 5 类别2 10 类别3 0 零物品案例很重要 我的模型是 class Category Base tablename c