orm设置bool型 python_python – 布尔类型列,作为SQLAlchemy中的ClauseElement

在 SQLAlchemy 中,使用 ORM 方式进行查询时,直接使用 `Table.valid == True` 对布尔类型的列进行过滤可能会显得不够优雅。在 SQLAlchemy 0.7 版本之前,可能需要使用 `and_()` 函数或者表绑定的列来组合多个过滤条件。从 0.8 版本开始,ORM 支持在单个 `filter()` 调用中添加多个标准,使得表达式如 `session.query(Table).filter(Table.name == 'huszar', Table.valid == True)` 成为可能。" 107568654,9935002,Ubuntu 18.04 指南:挂载新硬盘与旧硬盘迁移,"['Linux', 'Ubuntu', '电脑硬件']
摘要由CSDN通过智能技术生成

为什么SQLAlchemy中不可能将布尔类型列用作ClauseElement本身?

session.query(Table).filter(Table.name == 'huszar', Table.valid)

当然Table.valid == True会起作用,但对我来说看起来有点难看……

最佳答案 我想也许你在0.7上并且ORM在单个filter()调用中还没有支持多个标准,这是在0.8中添加的,如果是独立的话,0.7似乎还需要表绑定列.一切都在0.8:

from sqlalchemy import *

from sqlalchemy.orm import *

from sqlalchemy.ext.declarative import declarative_base

Base = declarative_base()

class A(Base):

__tablename__ = "a"

id = Column(Integer, primary_key=True)

data = Column(String(20))

boolean = Column(Boolean)

# works

e = create_engine("sqlite://", echo=True)

# works

#e = create_engine("postgresql://scott:tiger@localhost/test", echo=True)

# works

#e = create_engine("mysql://scott:tiger@localhost/t

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值