Python 为什么我要获取InstrumentedAttribute而不是basequery

Python 为什么我要获取InstrumentedAttribute而不是basequery,python,sqlalchemy,Python,Sqlalchemy,我使用flask_sqlalchemy在flask中创建了两个模型,如下所示: class Analytics(db.Model, IdMixin, ModelMixin): __tablename__ = "analytics" record_id = Column(Integer, ForeignKey("record.id"), nullable=True) created_at = Column(TIMESTAMP, nullable=True) upda

我使用flask_sqlalchemy在flask中创建了两个模型,如下所示:

class Analytics(db.Model, IdMixin, ModelMixin):
    __tablename__ = "analytics"
    record_id = Column(Integer, ForeignKey("record.id"), nullable=True)
    created_at = Column(TIMESTAMP, nullable=True)
    updated_at = Column(TIMESTAMP, nullable=True)

class HitLog(db.Model, IdMixin, TimestampMixin, ModelMixin):
    __tablename__ = "hit_logs"
    record_id = Column(Integer, ForeignKey("record.id"), nullable=True)
    url = Column(Text, nullable=False, default='')
    ip = Column(String(100), nullable=False, default='0.0.0.0', index=True)
    referer = Column(Text, nullable=False, default='')
    source = Column(String(255), nullable=False, default='', index=True)
    query = Column(Text, nullable=False, default='')
    user_agent = Column(String(255), nullable=False, default='')
    created_at = Column(TIMESTAMP, nullable=True, index=True)
    updated_at = Column(TIMESTAMP, nullable=True, index=True)
    deleted_at = Column(TIMESTAMP, nullable=True, index=True)
两个模型的创建方式相同,但在检查类型时,得到的结果不同:

print type(Analytics.query)
print type(HitLog.query)
给我:

<class 'flask_sqlalchemy.BaseQuery'>
<class 'sqlalchemy.orm.attributes.InstrumentedAttribute'>


为什么会这样?

HitLog
中有一列名为
query
。。我的错,它被命名为搜索查询。。。不知怎的,最初的部分被删除了…无论如何,谢谢