相关疑难解决方法(0)

在 SQLAlchemy 中,为什么我的 load_only 不过滤我指定的任何列?

基本上我已经创建了一个数据库,在正常的完整查询中,这是我使用的代码和生成的响应。

db.session.query(User).all()
Run Code Online (Sandbox Code Playgroud)

生成的查询如下:

<User(email='howard@howard.com', fullname='Howard', company='howard', address='None', password='howard')>,  <User(email='emailhoward', fullname='None', company='None', address='None', password='passwordhoward')>
Run Code Online (Sandbox Code Playgroud)

这是合乎逻辑的,因为我正在从表中提取所有内容。但是,当我尝试使用 load_only 专门选择一列时,在本例中为电子邮件列。我使用的代码是:

db.session.query(User).options(load_only(User.address)).all()
db.session.query(User).options(load_only('email')).all()
Run Code Online (Sandbox Code Playgroud)

这两个命令都给了我相同的结果:

<User(email='howard@howard.com', fullname='Howard', company='howard', address='None', password='howard')>,<User(email='emailhoward', fullname='None', company='None', address='None', password='passwordhoward')>
Run Code Online (Sandbox Code Playgroud)

这非常奇怪,因为我应该在查询中只得到一列。但是,当我使用它时:

db.session.query(User.email).select_from(User).filter_by(email=email).first()[0]
Run Code Online (Sandbox Code Playgroud)

它神奇地只为我返回一列。我需要使用 load_only,因为我有动态表,我想重用相同的函数,而不是维护多组函数。谁能告诉 load_only 命令有什么问题,或者我做错了什么?

谢谢你。

python sql sqlalchemy python-3.x

7
推荐指数
1
解决办法
1378
查看次数

标签 统计

python ×1

python-3.x ×1

sql ×1

sqlalchemy ×1