SQLAlchemy ORM:“AttributeError:无法在行中找到列”

2023-11-23

我现在正在学习 SQLAlchemy,但遇到了一个令我困惑的错误。是的,这里已经有类似的问题了,但似乎没有一个得到解决。

我的目标是使用ORM模式来查询数据库。所以我创建了一个模型:

from sqlalchemy import Column, Integer, String, create_engine
from sqlalchemy.orm import Session, registry
from sqlalchemy.sql import select

database_url = "mysql+pymysql://..."

mapper_registry = registry()
Base = mapper_registry.generate_base()


class User(Base):
    __tablename__ = "user"

    id = Column(Integer, primary_key=True)
    name = Column(String(32))


engine = create_engine(database_url, echo=True)
mapper_registry.metadata.create_all(engine)

新我想加载表中所有条目的整行:

with Session(engine) as session:
    for row in session.execute(select(User)):
        print(row.name)

#- Error: #

Traceback (most recent call last):
...
    print(row.name)
AttributeError: Could not locate column in row for column 'name'

我在这里做错了什么?我不应该能够访问 ORM 模型的字段吗?或者我误解了 ORM 的想法?

我使用 Python 3.8 和 PyMySQL 1.0.2 和 SQLAlchemy 1.4.15,服务器运行 MariaDB。

这是我能做到的最小例子,我希望任何人都能指出我正确的方向。有趣的是,插入新行就像一个魅力。


session.execute(select(User))将返回一个列表Row您需要解压的实例(元组):

for row in session.execute(select(Object)):
    # print(row[0].name)  # or 
    print(row["Object"].name)

但我会用.query它返回的实例Object直接地:

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

SQLAlchemy ORM:“AttributeError:无法在行中找到列” 的相关文章

随机推荐

  • Dynamic_cast 中的类型必须是完整类类型的指针或引用,或者 void *

    我希望有人能理解为什么下面的代码失败 我试图从 osg Node 节点对象获取 PositionAttitudeTransform Openscenegraph 类 的实例 但下面有粗体的编译器错误 void CameraPosCallba
  • 为什么扩展元素不适合复制多维数组?

    来自MDN 传播语法 注意 通常 ES2015 中的扩展运算符在复制数组时会深入一层 因此 它们不适合复制多维数组 这与 Object assign 和对象扩展语法的情况相同 请参阅下面的示例以更好地理解 var a 1 2 3 var b
  • Codeigniter 如何创建 PDF

    我要创建一个发票系统 我现在正在为此做准备 我将使用 Codeigniter 问题是我想创建 PDF 格式的发票 这样我就可以通过电子邮件发送它 你们有什么建议 我正在考虑 HTML 到 PDF 的转换 或者在屏幕上显示发票并安装 pdf
  • Boost 随机和 OpenMP

    我从 OpenMP 并行代码部分收到 总线错误 我在下面重新创建了我的问题的简单版本 该代码本质上对函数进行了多次调用uniform distribution 它使用 Boost 的uniform int distribution 绘制 0
  • SQL Server 2005 - 将列设置为只读

    我在 SQL Server 2005 数据库的表中有一个 InsertTime 字段 当记录首次插入数据库时 该字段默认为 getDate 我想确保此专栏不再更新 是否可以将此列设置为只读 或者是否有更好的方法来执行此操作 而无需为开发人员
  • 使用 Java 的 Google 数据存储模拟器(不使用 GAE)

    我正在使用 Google Cloud 的 Java 数据存储客户端库来访问 Cloud Datastore Note 我没有使用 App Engine 来部署我的应用程序 只是出于开发目的运行本地应用程序 按照示例 我可以读取 写入云数据存
  • 将模板成员函数的专门化定义(没有默认主体)放在源文件中是否安全?

    这就是我的意思 test h class cls public template lt typename T gt void f T t test cpp template lt gt void cls f const char main
  • 关于不使用 Interface Builder 进行 iPhone GUI 设计的教程?

    有谁知道有关仅使用代码而不是 Interface Builder 进行 iPhone GUI 设计的好教程吗 我是 iPhone 开发新手 我想更好地了解幕后发生的事情 查看 SDK 中的 UI 目录示例 它展示了以多种方式使用的所有单独控
  • 我可以在不安装的情况下使用git吗?

    我听说过有关 git 的好消息 我想在安装它之前尝试一下 如果我想在学校使用 git 那么将它放在闪存驱动器上也很棒 是否可以使用完整路径 例如 path to git init 我主要使用 Mac OS X 所以问题主要针对 Mac 但我
  • Symfony/Doctrine:DateTime 作为主键

    我正在尝试使用日期作为主键创建一个实体 问题是 Symfony 无法将我正在使用的 DateTime 转换为字符串以将其引入到 IdentityMap 中 在实体持久化期间出现以下错误 Catchable Fatal Error Objec
  • PHP 运算符优先级和字符串连接?

    请看下面的代码片段 i 1 echo i i 很快 我以为结果会是12但实际结果是21 also echo i i 我以为会是12但它的11 echo i i result is 1 echo i i 1 result is 2 But w
  • 在通用 lambda 中使用模板参数

    GCC允许使用以下语法作为扩展 a functional object that will add two like type objects auto add
  • 默认参数和可变参数函数

    有没有办法在可变参数函数中指定默认参数 也适用于模板 在 C 中 您可以将可变参数函数替换为基于命名参数习惯用法的函数 请参阅 C 常见问题解答项10 20 什么是 命名参数习惯用法 这为您提供了默认功能和方便的符号 干杯
  • 将 web.xml 安全约束与 Spring Boot 结合使用

    我有一个特殊的情况 我需要使用应用程序服务器 Weblogic 安全上下文进行身份验证 但使用 Spring Security 进行授权 我在用Spring Boot创建我的应用程序 如何添加如下所示的安全约束 通常包含在web xml
  • Python 列表:列表中具有重复值的 heapq.nlargest 索引

    假设我有一个数字列表 my list 3 8 4 2 8 1 1 2 5 1 我现在想找到这个列表中两个最大数字的索引 所以 我尝试 import heapq max vals heapq nlargest 2 my list index1
  • 在 Python 中连接字符串的首选方法是什么? [复制]

    这个问题在这里已经有答案了 自从Python的string无法更改 我想知道如何更有效地连接字符串 我可以这样写 s stringfromelsewhere 或者像这样 s s append somestring later s join
  • 为什么要在打印之前读取输入?

    I m having some problems with some basic I O stuff Specifically the text Please enter your name is written to the output
  • Java Swing 中的 PropertyGrid

    Java Swing 是否有类似于 NET 中 PropertyGrid 的控件 如果有 是哪一个 或者至少哪一个最接近它 Thanks 没有用于此目的的内置组件 但有几个第三方项目 尤其 Java Bean 检查器 GPL 看起来很有前途
  • 具有 MaterialComponents 主题的 ActionBar 背景

    我想自定义我的 ActionBar 我的主题如下所示 在值文件夹中
  • SQLAlchemy ORM:“AttributeError:无法在行中找到列”

    我现在正在学习 SQLAlchemy 但遇到了一个令我困惑的错误 是的 这里已经有类似的问题了 但似乎没有一个得到解决 我的目标是使用ORM模式来查询数据库 所以我创建了一个模型 from sqlalchemy import Column