2011-07-15 13 views
13

का उपयोग कर डेटाबेस को परिभाषित करने में डेटाटाइम क्या मुझे टेबल परिभाषित करने में डेटाटाइम के साथ() का उपयोग करना चाहिए? क्या कोड गलत 1 या 2?sqlalchemy

1:

Base = declarative_base() 
class T(Base): 
    __tablename__ = 't' 

    created = Column(DateTime, default=datetime.now) 

2:

Base = declarative_base() 
class T(Base): 
    __tablename__ = 't' 

    created = Column(DateTime, default=datetime.now()) 

उत्तर

20

आप पहले मामले चाहते हैं। जब भी आप पंक्ति डालते हैं, तब से आप SQLAkchemy को बता रहे हैं, डिफ़ॉल्ट फ़ंक्शन प्राप्त करने के लिए इस फ़ंक्शन (कॉल करने योग्य) को चलाएं। यह कोई कॉल करने योग्य फ़ंक्शन या स्ट्रिंग मान हो सकता है।

इस तरह फ़ंक्शन को सम्मिलित समय पर बिल्कुल कहा जाता है और आपको सही तिथि मिलती है जिसे इसे डाला गया था।

यदि आप दूसरे मान का उपयोग करते हैं, तो आप पाएंगे कि सभी डिफ़ॉल्ट मान समान डेटा साझा करते हैं। यह वह मूल्य होगा जो पहली बार कोड संसाधित हो गया था।

http://www.sqlalchemy.org/docs/core/schema.html?highlight=default#sqlalchemy.schema.ColumnDefault

This could correspond to a constant, a callable function, or a SQL clause.