python – 布尔类型列,作为SQLAlchemy中的ClauseElement
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了python – 布尔类型列,作为SQLAlchemy中的ClauseElement,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1208字,纯文字阅读大概需要2分钟。
内容图文
![python – 布尔类型列,作为SQLAlchemy中的ClauseElement](/upload/InfoBanner/zyjiaocheng/904/10a40bf7601c4f4583707a369064476f.jpg)
为什么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/test", echo=True)
Base.metadata.create_all(e)
s = Session(e)
s.add_all([
A(data='a1', boolean=True),
A(data='a2', boolean=False),
A(data='a3', boolean=True),
])
# works
print s.query(A).filter(A.data > 'a1', A.boolean).all()
# works
print s.query(A).filter(A.boolean).all()
# if before 0.8, need to use and_() or table-bound column
# print s.query(A).filter(and_(A.data > 'a1', A.boolean)).all()
# print s.query(A).filter(A.__table__.c.boolean).all()
内容总结
以上是互联网集市为您收集整理的python – 布尔类型列,作为SQLAlchemy中的ClauseElement全部内容,希望文章能够帮你解决python – 布尔类型列,作为SQLAlchemy中的ClauseElement所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。