python - 为什么 sqlalchemy 声明性基础对象没有属性“查询”?
问题描述
我创建了声明性表。
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, String
from sqlalchemy.dialects.postgresql import UUID
import uuid
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(UUID(as_uuid=True), primary_key=True, default=uuid.uuid4, unique=True)
name = Column(String)
我需要过滤数据。在 中Flask-SQLAlchemy
,我愿意
name = 'foo'
User.query.filter_by(name=name).first()
但是,如果我SQLAlchemy
不使用 Flask,则会收到错误消息:
类型对象“用户”没有属性“查询”
对我有用的唯一方法是通过session
.
engine = create_engine('DATABASE_URL')
Session = sessionmaker(bind=engine)
session = Session()
name = 'foo'
user = session.query(User).filter_by(name=name).first()
session.close()
解决方案
Model.query...
惯用语不是 SQLAlchemy ORM 的默认部分;这是Flask-SQLAlchemy提供的自定义。它在基本 SQLAlchemy 中不可用,这就是您收到错误消息的原因。
推荐阅读
- git - 基于另一个本地分支 + PR 在本地分支 + PR 上工作的最佳实践
- c# - 在包含两个位集的 C++ 结构上使用 C# 的 Marshal.PtrToStructure
- ios - UITextView如何使属性字符串中的超链接可点击?
- expect - 使用 Sysname 在 Expect 脚本中创建变量
- mediawiki - 具有多个类别的媒体 Wiki Wikipedia 查询
- html - 在链接上使用 :visited 无法正常工作
- angular - 使用 RXJS Angular 列出 + 分页
- html - 希望一个 html 表格与另一个表格的宽度相同
- android - 来自 NFC 标签的意外文本
- reactjs - 在基于函数的组件中的 useEffect 调用中未删除事件侦听器