Python 为什么我要获取InstrumentedAttribute而不是basequery
我使用flask_sqlalchemy在flask中创建了两个模型,如下所示: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
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
。。我的错,它被命名为搜索查询。。。不知怎的,最初的部分被删除了…无论如何,谢谢