2010-03-14 8 views
22

मेरे पास एक तालिका के साथ एक वर्ग मैप किया गया है, मेरे मामले में एक घोषणात्मक तरीके से, और मैं इस वर्ग से तालिका गुण, कॉलम, नाम, संबंधों को "खोजना" चाहता हूं:SQLAlchemy मैप किए गए ऑब्जेक्ट से तालिका गुणों को कैसे खोजें

engine = create_engine('sqlite:///' + databasePath, echo=True) 

# setting up root class for declarative declaration 
Base = declarative_base(bind=engine) 

class Ship(Base): 
    __tablename__ = 'ships' 

    id = Column(Integer, primary_key=True) 
    name = Column(String(255)) 

    def __init__(self, name): 
      self.name = name 

    def __repr__(self): 
      return "<Ship('%s')>" % (self.name) 

तो अब मेरा लक्ष्य "जहाज" वर्ग से तालिका कॉलम और उनके गुण कोड के दूसरे भाग से प्राप्त करने के लिए है। मुझे लगता है कि मैं उपकरण का उपयोग कर इसका सामना कर सकता हूं लेकिन क्या एसक्यूएलकेमी एपीआई द्वारा प्रदान किया गया कोई तरीका है?

+1

http://stackoverflow.com/q/2537471/25507 पर संबंधित प्रश्न भी देखें –

उत्तर

43

जानकारी आप की जरूरत है आप Table वस्तु से प्राप्त कर सकते हैं:

  • Ship.__table__.columns कॉलम में जानकारी प्रदान करेगा
  • Ship.__table__.foreign_keys विदेशी कुंजी
  • Ship.__table__.constraints, सूची जाएगा Ship.__table__.indexes आपको पता चल सकता अन्य संपत्तियों कर रहे हैं उपयोगी
+0

आपके उत्तर –

+0

के लिए धन्यवाद क्या कक्षा के शरीर में मूल कक्षाओं में '@ घोषित_attr' का उपयोग करके घोषित विशेषताओं को प्राप्त करने का कोई तरीका है? मैं तालिका के नाम के आधार पर अनुक्रम के नाम के साथ अनुक्रम का उपयोग करके कॉलम घोषित करना चाहता हूं जिसे '@ घोषित_attr' का उपयोग कर बेस क्लास में परिभाषित किया गया है। –

संबंधित मुद्दे