Ada*_*kin 5 python sqlalchemy introspection
我正在寻找一种方法来反省SQLAlchemy ORM类/实体,以确定实体属性的类型和其他约束(如最大长度).
例如,如果我有一个声明性类:
class User(Base):
__tablename__ = "USER_TABLE"
id = sa.Column(sa.types.Integer, primary_key=True)
fullname = sa.Column(sa.types.String(100))
username = sa.Column(sa.types.String(20), nullable=False)
password = sa.Column(sa.types.String(20), nullable=False)
created_timestamp = sa.Column(sa.types.DateTime, nullable=False)
Run Code Online (Sandbox Code Playgroud)
我希望能够发现' fullname'字段应该是一个最大长度为100的字符串,并且可以为空.' created_timestamp'字段是DateTime,不可为空.
cod*_*ape 11
就像是:
table = User.__table__
field = table.c["fullname"]
print "Type", field.type
print "Length", field.type.length
print "Nullable", field.nullable
Run Code Online (Sandbox Code Playgroud)
编辑:
即将推出的0.8版本有一个新的类检测系统:
新的班级检查系统
状态:已完成,需要文档
许多SQLAlchemy用户正在编写需要能够检查映射类的属性的系统,包括能够获取主键列,对象关系,普通属性等,通常用于构建数据编组的目的系统,如JSON/XML转换方案,当然也形成了丰富的库.
最初,表格和柱子模型是原始检查点,具有良好记录的系统.虽然SQLAlchemy ORM模型也完全内省,但这从来就不是一个完全稳定和受支持的功能,用户往往不清楚如何获取这些信息.
0.8计划为此目的生成一致,稳定且完整记录的API,这将提供一个对类,实例和可能的其他东西起作用的检查系统.虽然该系统的许多元素已经可用,但计划是锁定API,包括可从Mapper,InstanceState和MapperProperty等对象获得的各种访问器:
(点击链接获取更多信息)
| 归档时间: |
|
| 查看次数: |
1812 次 |
| 最近记录: |