使用 SQLAlchemy 检索除部分列之外的所有列

2024-02-18

我正在制作一个以 JSON 格式发送特定表的 WebService。 我使用 SQLAlchemy 与数据库通信。

我只想检索用户有权查看的列。

有没有办法告诉 SQLAlchemy 不要检索某些列? 这是不正确的,但类似这样:

SELECT * EXCEPT column1 FROM table.

我知道可以在 SELECT 语句中仅指定某些列,但这并不完全是我想要的,因为我不知道所有表列。我只想要所有的列,除了一些。

我还尝试获取所有列并删除我不想要的列属性,如下所示:

 result = db_session.query(Table).all()
 for row in result:
     row.__delattr(column1)

但似乎 SQLAlchemy 不允许这样做。 我收到警告:

Warning: Column 'column1' cannot be null 
cursor.execute(statement, parameters)
ok

对你们来说最优化的方法是什么?

谢谢


您可以将表中的所有列(您不需要的列除外)传递给查询方法。

session.query(*[c for c in User.__table__.c if c.name != 'password'])

这是一个可运行的示例:

#!/usr/bin/env python

from sqlalchemy import create_engine
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
from sqlalchemy.orm import Session


Base = declarative_base()
class User(Base):
    __tablename__ = 'users'

    id = Column(Integer, primary_key=True)
    name = Column(String)
    fullname = Column(String)
    password = Column(String)

    def __init__(self, name, fullname, password):
        self.name = name
        self.fullname = fullname
        self.password = password

    def __repr__(self):
       return "<User('%s','%s', '%s')>" % (self.name, self.fullname, self.password)

engine = create_engine('sqlite:///:memory:', echo=True)

Base.metadata.create_all(engine)
session = Session(bind=engine)
ed_user = User('ed', 'Ed Jones', 'edspassword')
session.add(ed_user)
session.commit()

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

使用 SQLAlchemy 检索除部分列之外的所有列 的相关文章

随机推荐

  • Spring Data JPA - 多个 EnableJpaRepositories

    我的应用程序有多个数据源 因此我基于此创建了两个数据源配置类URL https github com spring projects spring data examples tree master jpa multiple datasou
  • ZipFile 关闭后 ZipEntry 是否仍然存在?

    目前 我的库中存在看似合理的资源泄漏 因为我将 ZipFile 保持打开状态 因此某个 ZipEntry 返回的 InputStream 未关闭 但是 关闭返回的 InputStream 并不会关闭 ZipFile 的其余部分 因此我坚持将
  • 判断两个Git分支是否有分歧

    我想确定两个 Git 分支是否有分歧 或者其中一个分支是否可以简单地快速转发到另一个分支 换句话说 我想检查其中一个分支的当前 HEAD 是否已在某个时刻合并到另一个分支中 或者它是否包含不在另一个分支中的提交 有没有办法在不实际合并两个分
  • 带 VideoView 的无缝视频循环

    我有以下代码将视频作为原始资源 启动视频并循环播放 但我需要视频在剪辑结束时无缝循环 并再次启动剪辑 之间的转换会导致闪烁一瞬间 我的应用程序确实无法做到这一点 public class Example extends Activity V
  • 获取所有大于某个值的 stl 向量元素

    我想知道如何找到具有验证特定条件的值的 stl 向量元素列表 例如 如果我有一个 int 值向量 vector
  • 从Linux调用Windows批处理文件

    我有一个仅在 Windows 上运行的应用程序和一个启动它的批处理文件 我想从 Linux 调用这个批处理文件 这意味着 Linux 批处理之类的东西将使用参数启动 Windows 批处理 然后依次运行我的应用程序 我可以这样做吗 如何 你
  • 在套接字编程c#中发送大文件[重复]

    这个问题在这里已经有答案了 我想用 c 中的套接字发送大文件 文件可以传输 但当我想打开它时 我看到它已损坏 有什么问题 我在客户端代码中将文件分成 2KB 的数组并发送 然后 在服务器代码中 我收到它并将其放入字节数组中并转换为文件 服务
  • Word VSTO - 为什么有时会丢失 paraId

    我正在从 openXML 检索段落样式名称并使用 paraID 属性来获取正确的样式名称 在测试过程中 我注意到根据单词文档 该属性可能不会出现在任何段落中 我确实知道这是 Word 的内部运行时段落 ID 所以问题是 是什么在段落上生成
  • “fasta 文件中序列的平均长度”:你能改进这个 Erlang 代码吗?

    我正在尝试获取平均长度快速序列 http en wikipedia org wiki Fasta Sequence using Erlang fasta 文件看起来像这样 gt title1 ATGACTAGCTAGCAGCGATCGACC
  • 发送后无法设置标头

    我使用的是节点版本 0 10 3 和 Express 3 1 1 我试图返回一个简单的响应 但出现以下错误 http js 692 throw new Error Can t set headers after they are sent
  • 为什么我们需要在传输之前对图像进行base64编码? [复制]

    这个问题在这里已经有答案了 可能的重复 Base 64 编码有什么用 https stackoverflow com questions 201479 what is the use of base 64 encoding 我见过许多在通过
  • 域对象与 JPA 实体相同吗?

    域对象与 JPA 实体相同吗 如果我有一个值对象 例如一张美元钞票 我如何 甚至应该 将其作为引用对象存储在数据存储中 领域对象在某些情况下是实体 而在其他情况下是值对象 有哪些微妙之处 有人可以指导我一篇关于这方面的好论文吗 领域对象 是
  • JPA / JPQL - 批量更新

    我必须对表执行批量更新 制作一个快速示例 UPDATE Book b SET b amount b amount 1 WHERE b IN books 问题是 b amount 可以是 NULL 值或 int 如果存在 NULL 值 则 b
  • 通过 API 端点访问 lambda 时出现 {"message":"Missing Authentication Token"}

    我可以通过调用 lambda 函数的 POSTMAN 来调用 URL 端点 但是当我尝试通过浏览器使用端点时 它给了我弓 json 对象 我觉得 API 网关正在阻止它 我没有为终点设置任何授权 如下所示 message Missing A
  • 未处理的异常:MissingPluginException(在通道 app.meedu/flutter_facebook_auth 上未找到方法登录的实现)

    当我尝试通过我的 flutter 应用程序在 Android 设备上使用 facebook 登录时 出现以下错误 错误 flutter lib ui ui dart state cc 209 未处理的异常 MissingPluginExce
  • Android:如何以编程方式设置layout_constraintRight_toRightOf“parent”

    我在 ConstraintLayout 中有一个视图 如下所示
  • 调用方法在 JFrame 上绘图

    有人可以向我解释为什么这不起作用吗 错误似乎在 Gen 类内部 但是 我认为这可能与 BoxMan 有关 错误提示找不到符号变量 g 我也尝试输入整数和双精度数 但它给了我 Required Java awt Graphics Found
  • R 数据框的列表列表,其中列表名称作为额外列

    我有一个包含名称的列表的列表 我想将它们全部添加到一个数据框中 但保留所有列 past earnings lists 1 成功从列表列表中返回一个列表 names past earnings lists 1 成功返回列表名称 past ea
  • 如何捕获电话号码

    我正在寻找在 vb net 或 c net 中创建一个 Windows 应用程序来捕获来电的电话号码 这将是一条固定电话线 硬件要求是什么 将使用哪些 Net 库 您需要一个支持来电显示且受 Windows 支持的最新调制解调器 Windo
  • 使用 SQLAlchemy 检索除部分列之外的所有列

    我正在制作一个以 JSON 格式发送特定表的 WebService 我使用 SQLAlchemy 与数据库通信 我只想检索用户有权查看的列 有没有办法告诉 SQLAlchemy 不要检索某些列 这是不正确的 但类似这样 SELECT EXC