用Python+PyQt+SQLAlchemy 做一个小应用。
基本工作流程是从用SQLAlchemy读出数据库中的数据,根据SQLAlchemy查询到的字段类型(sqlalchemy.Table.c.type)自动生成PyQt控件,收到界面操作结果后,然后根据PyQt的控件类型又转换成SQLAchemy所需的类型,存入数据库。
遇到的问题:sqlalchemy.Table.c.type 查询的到字段类型并不是ORM Declarative (declarative_base)申明表时的类型,而似乎于mysql中的类型。
例如:Declarative 申明如下,
class Person(Base):
__tablename__ = 'person'
is_deleted = Column(Boolean, default=False, comment='删除标记')
is_deleted 列通过sqlalchemy.Table.c.type查询到的类型是TINYINT(display_width=1),怎么能让查询才能到Boolean呢?