SQLModel:sqlalchemy.exc.ArgumentError:需要列表达式或 FROM 子句,

2023-11-25

我正在使用 SQLModel 库来做一个简单的select()就像他们官方网站上描述的那样。然而我得到了Column expression or FROM clause expected错误信息

from typing import Optional

from sqlmodel import Field, Session, SQLModel, create_engine, select

from models import Hero
    
sqrl = f"mysql+pymysql:///roo@asdf:localhost:3306/datab"

engine = create_engine(sqrl, echo=True)


def create_db_and_tables():
    SQLModel.metadata.create_all(engine)


def select_heroes():
    with Session(engine) as session:
        statement = select(Hero)
        results = session.exec(statement)
        for hero in results:
            print(hero)


def main():
    select_heroes()


if __name__ == "__main__":
    main()

这是我的models/Hero.py code:

from datetime import datetime, date, time
from typing import Optional
from sqlmodel import Field, SQLModel

class Hero(SQLModel, table=True):
    id: Optional[int] = Field(default=None, primary_key=True)
    name: str
    secret_name: str
    age: Optional[int] = None
    created: datetime
    lastseen: time
     

当我运行 app.py 时我得到sqlalchemy.exc.ArgumentError: Column expression or FROM clause expected, got <module 'models.Hero' from '/Users/dev/test/models/Hero.py'>. message


错误信息<Column expression or FROM clause expected, got module 'models.Hero' from '/Users/dev/test/models/Hero.py'>告诉我们:

  • SQLAlchemy / SQLModelexpected接收列表达式或 FROM 子句:在 ORM 层中,这通常意味着需要模型类或模型列的集合
  • SQLAlchemy / SQLModel不料收到一个名为的模块对象models.Hero
  • 你有一个名为Hero.py

解决方案是将导致错误的对象替换为select or query函数期望接收,例如 SQLAlchemy 或 SQLModel ORM 模型类。

进口声明from models import Hero只导入module Hero。任何一个

  • change the import to import the model*
    from models.Hero import Hero
    
  • change the code in select_heroes to reference the model
    statement = select(Hero.Hero)
    

* It's 常规使用全部小写对于模块名称;遵循此约定将帮助您区分模块和模型。

† 在我看来,这种方法更可取:通过模块命名空间访问对象消除了名称冲突的可能性(当然它可以与小写模块名称组合)。

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

SQLModel:sqlalchemy.exc.ArgumentError:需要列表达式或 FROM 子句, 的相关文章

  • MySQL集群启动失败

    这不是我第一次创建ndbcluster 但我没有收到这样的问题 我正在关注本手册 https hub docker com r mysql mysql cluster by mysql团队 我正在使用回显的默认配置在此 GitHub 存储库
  • 猪的组连接等效吗?

    试图在 Pig 上完成这个任务 寻找 MySQL 的 group concat 等效项 例如 在我的表中 我有以下内容 3fields userid clickcount pagenumber 155 2 12 155 3 133 155
  • MySQL 数据库无法在 XAMPP for Mac 上启动

    突然我在 mac 上遇到了这个问题 我无法启动我的 MySQL 数据库 我只能启动 ProFTPD 和 Apache Web Server 这是应用程序日志 Starting all servers Starting MySQL Datab
  • 如何结合pytube和tkinter标签来显示进度?

    我正在编写从 youtube 下载歌曲的小程序 使用 pytube 我想添加 python tkinter GUI 以在下载文件时显示百分比值 现在 当我执行代码时 程序首先下载文件 大约需要 60 秒 然后才显示 100 的标签 如果我希
  • 删除flask中的一对一关系

    我目前正在使用 Flask 开发一个应用程序 并且在删除一对一关系中的项目时遇到了一个大问题 我的模型中有以下结构 class User db Model tablename user user id db Column db String
  • MySQL - 多个结果集

    我正在使用 NET Connector 连接到 MySQL 在我的应用程序中 很少有线程使用相同的连接 因此如果 MySQLDataReader 尚未关闭并且某个线程正在尝试执行查询 则会出现该错误 已经有一个打开的 DataReader
  • Python zmq SUB 套接字未接收 MQL5 Zmq PUB 套接字

    我正在尝试在 MQL5 中设置一个 PUB 套接字 并在 Python 中设置一个 SUB 套接字来接收消息 我在 MQL5 中有这个 include
  • Jupyter Notebook 找不到 Python 模块

    不知道发生了什么 但每当我使用 ipython 氢 原子 或 jupyter 笔记本时都找不到任何已安装的模块 我知道我安装了 pandas 但笔记本说找不到 我应该补充一点 当我正常运行脚本时 python script py 它确实导入
  • 更改mysql数据库表中的日期格式

    大家早上好 只是一个简单的问题 在我现有的 MySql 数据库中 我几乎没有包含日期 的列 目前这些是年 月 日格式 但现在我需要将其全部更改为年 月 日格式 我试过了select date format curdate d m Y 但它不
  • 如何在查询语句之外从mysql查询中获取值?

    这是下面的函数console log function quo value value connection query SELECT role from roles where id 1 function error results fi
  • 是否可以根据节点大小更改字体大小?

    根据NetworkX https networkx github io documentation networkx 1 10 reference generated networkx drawing nx pylab draw netwo
  • 显示和随机化 php 数组

    我有一个显示结果的数组 如下所示 Array 0 gt 71 1 gt 56 2 gt 64 3 gt 82 4 gt 90 5 gt 80 6 gt 65 7 gt 62 8 gt 14 9 gt 3 我的代码是 while row my
  • 如何从表中检索特定列 --- JPA 或 CrudRepository?我只想从用户表中检索电子邮件列

    用户模型 Entity Table name user uniqueConstraints UniqueConstraint columnNames email public class User implements Serializab
  • 如何在Windows中的Python 3.9下pip安装pickle?

    我需要pickle https docs python org 3 9 library pickle html module pickle包安装在我的下面Python 3 9在 Windows 10 下 我尝试过的 当尝试与pip inst
  • 无法在 virtualenv 中安装 libxml2

    我有一个问题libxml2蟒蛇模块 我正在尝试将其安装在python3 虚拟环境使用以下命令 pip install libxml2 python3 但它显示以下错误 Collecting libxml2 python3 Using cac
  • 在请求中设置端口

    我正在尝试利用cgminer使用 Python 的 API 我对利用requests图书馆 我了解如何做基本的事情requests but cgminer想要更具体一点 我想缩小 import socket import json sock
  • 无法连接到 MAMP 上的 phpMyAdmin

    我收到此错误消息 MySQL 说道 无法连接 设置无效 phpMyAdmin 尝试连接 MySQL 服务器 但服务器拒绝连接 您应该检查配置中的主机 用户名和密码 并确保它们与 MySQL 服务器管理员提供的信息相对应 用户和通行证是默认的
  • 无法让gunicorn使用Python 3

    我有 Ubuntu NGINX Gunicorn 以及可与 Python 3 设置配合使用的虚拟环境 但我的 Flask 应用程序仍然以 2 7 6 运行 我已系统地按照说明进行操作 但找不到解决方案 Gunicorn 配置文件 progr
  • 如何使用 enumerate 来倒数?

    letters a b c 假设这是我的清单 在哪里for i letter in enumerate letters 将会 0 a 1 b 2 c 我怎样才能让它向后枚举 如 2 a 1 b 0 c 这是一个很好的解决方案并且工作完美 i
  • 如何同时接受int和float类型的输入?

    我正在制作一个货币转换器 如何让 python 同时接受整数和浮点数 我就是这样做的 def aud brl amount From to ER 0 42108 if amount int if From strip aud and to

随机推荐

  • 不带 new 的动态数组 (C++)

    我是 C 新手 这是一个非常基本的问题 在C 中只有两种创建动态数组的方法 在书上看到的 如有错误请指正 使用内存分配new运算符或malloc 函数取自C 声明数组时int array size 方括号 must have a const
  • java applet 策略文件放置在哪里?

    我正在开发一个人工智能项目 这是一个逻辑游戏 目标是两个用户连接到网络上的服务器 充当管理员 然后开始一一玩 为了创建连接 我有一个服务器代码 它只是在 localhost 8000 上侦听 并在客户端到达时为其分配团队值 连接后 客户端在
  • CSS - 如何从div溢出到屏幕全宽

    我有一个包含 DIV 我将其用作响应式网格的一部分 它扩展到我允许的最大宽度 即 1280px 然后在大型设备上出现边距 这是我的 CSS 一些 Less container margin left auto margin right au
  • XML 中的“xmlns”是什么意思?

    我在 XML 文件中看到以下行 xmlns android http schemas android com apk res android 我也见过xmlns在我遇到的许多其他 XML 文件中 它是什么 它的意思是XML命名空间 基本上
  • 使用 JavaScript 对 CSS3 变换的值进行动画处理是否可以排除硬件加速?

    您可以通过设置动画持续时间并设置 CSS3 变换的初始值和最终值来利用硬件加速动画 如果您不设置动画持续时间并使用关键帧 而是直接使用 JavaScript 对所需 CSS3 转换的值进行动画处理 会怎样 您是否仍会利用硬件加速 或者是否会
  • 如何最好地将 CString 转换为 BSTR 以将其作为“in”参数传递到 COM 方法中?

    我需要转换一个CString实例到正确分配的BSTR并通过它BSTR转换为 COM 方法 为了让代码能够针对 ANSI 和 Unicode 进行相同的编译和工作 我使用CString AllocSysString 转换任何格式CString
  • MPI 和全局变量

    我必须实施 MPI 程序 有一些全局变量 4 个浮点数组和其他 6 个单浮点变量 首先由主进程从文件读取数据进行初始化 然后我调用 MPI Init 当排名 0 的进程等待结果时 其他进程 排名 1 2 3 4 处理数组等 问题是这些数组似
  • 在 ggplot() 中将误差线放置在列中心时出现问题

    我的条形图有问题 误差线仅出现在分组变量列的角上 而不是以集中方式出现在它们上 我正在使用的代码是这样的 a lt data frame Cond c In In Out Out Temp c Hot Cool Hot Cool Score
  • .NET 缓存(不在网站中)

    我需要一个能够响应内存压力的缓存 就像 ASP NET 中内置的缓存一样 我没有使用网站 但我正在构建 Windows 服务 有什么建议么 代码 技术 产品 只要它在内存中 我不在乎 如果您熟悉 ASP NET 缓存 System Web
  • 如何使用pvc创建postgres的helm图表

    我想使用 PVC 持久卷声明 为 PostgreSQL 创建一个 helm 图表 我考虑过尝试 katacodahttps www katacoda com courses kubernetes helm package manager使用
  • 无法建立与节点 -1 (/127.0.0.1:9092) 的连接。经纪人可能不可用

    我正在研究Spring Boot Kafka来自 Confluence 的示例并运行简单的生产者示例并出现以下错误 我使用的是 Windows 机器 并在 Windows 上安装了 ubunt 14 04 LTS 注意 即使我使用 loca
  • 如何使用 IOStream 存储格式设置?

    当为用户定义的类型创建格式化输出时 通常需要定义自定义格式化标志 例如 如果自定义字符串类可以选择在字符串周围添加引号 那就太好了 String str example std cout lt lt str lt lt lt lt squo
  • ASP.Net Core Cookie 身份验证不是持久的

    我开始使用开发网站ASP NET 核心 2 2 我正在通过自定义 cookie 身份验证 而不是身份 实现登录 注销 请查看或克隆the repo git clone https github com mrmowji aspcore cus
  • 多平台可移植Python

    我想在虚拟环境中将python安装在闪存驱动器上 这样无论我在哪里都可以开发代码 我可以在 Windows Mac Linux 计算机上使用我的闪存驱动器吗 对于 Windows 请前往 Portable Python http Porta
  • 如何使用 PHP 提取多部分 zip 文件?

    我使用了这段代码 来自 使用 php 解压文件 zip new ZipArchive res zip gt open file zip if res TRUE zip gt extractTo myzips extract path zip
  • 降低 ORMlite 的内部日志详细程度或禁用它

    我们正在我们的应用程序中进行一些重大的性能调整 因此我们开始使用方法跟踪来查找瓶颈 乍一看 Ormlite 还不错 但我们发现 例如在一个需要 8 毫秒的查询中 Ormlite 的内部日志需要 6 毫秒 75 此外 这些日志调用处于调试级别
  • 如何在 WPF RichTextBox 中将插入符号移动一定数量的位置?

    我想将插入符号移动到当前插入符号位置的右侧 4 个位置 我已注册PreviewKeyDown 并调用InsertTextInRun 当 Tab 键被捕获时 如下所示 private void rtb PreviewKeyDown objec
  • 仅限制一个方向的拖动

    Using jQuery 可拖动 如何限制可拖动对象被拖动只朝一个方向 即只有顶部或只有底部axis y 并且仅向左或仅向右时axis x 这意味着如果我想要一个可拖动的 with axis set to y 只能被拖到bottom 那么它
  • ES6 粗箭头和括号 `(...) => ({...})` [重复]

    这个问题在这里已经有答案了 我一直在研究一些 Graph QL React Relay 示例 但遇到了一些奇怪的语法 在 Graphql 对象中定义字段时 使用以下语法 const xType new GraphQLObjectType n
  • SQLModel:sqlalchemy.exc.ArgumentError:需要列表达式或 FROM 子句,

    我正在使用 SQLModel 库来做一个简单的select 就像他们官方网站上描述的那样 然而我得到了Column expression or FROM clause expected错误信息 from typing import Opti