栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

具有多个对象层次结构的SQLalchemy

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

具有多个对象层次结构的SQLalchemy

感谢van和使用继承,如果可以帮助其他任何人,这是我的解决方案:

from sqlalchemy import (    Column,    Integer,    Text,    ForeignKey,)from sqlalchemy.orm import (    scoped_session,    sessionmaker,    relationship,    backref,)import uuidfrom sqlalchemy.ext.declarative import declarative_basefrom zope.sqlalchemy import ZopeTransactionExtensionDBSession = scoped_session(sessionmaker(extension=ZopeTransactionExtension()))base = declarative_base()class Node(base):    """    An object representing a node in the hierarchy.    All the other objects inherit from Node.    """    def getID():        return uuid.uuid1().hex    __tablename__ = 'Node'    ID = Column(Text, primary_key=True, default=getID)    ParentID = Column(Text, ForeignKey('Node.ID'))    type = Column(Text(50))    Children = relationship("Node",     backref=backref('Parent', remote_side=[ID], uselist=False) )    __mapper_args__ = {        'polymorphic_identity':'Node',        'polymorphic_on':type    } class A(Node):    __tablename__ = 'A'    ID = Column(Text, ForeignKey('Node.ID'), primary_key=True)    __mapper_args__ = {        'polymorphic_identity':'A',    }class B(Node):    __tablename__ = 'B'    ID = Column(Text, ForeignKey('Node.ID'), primary_key=True)    __mapper_args__ = {        'polymorphic_identity':'B',    }class C(Node):    __tablename__ = 'C'    ID = Column(Text, ForeignKey('Node.ID'), primary_key=True)    __mapper_args__ = {        'polymorphic_identity':'C',    }


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/662246.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号