Django में कई अस्थायी तालिकाओं के साथ इंटरफेसिंग
जब अस्थायी तालिकाओं वाले MySQL डेटाबेस के साथ काम करते हैं जो एक समान स्कीमा साझा करते हैं लेकिन गतिशील रूप से असाइन किए गए नाम होते हैं, इन तालिकाओं और Django के बीच एक इंटरफ़ेस स्थापित करना आवश्यक हो जाता है। यह आलेख गतिशील नामों के साथ कई तालिकाओं से डेटा पुनर्प्राप्त करने के लिए एकल Django मॉडल का उपयोग करने की व्यवहार्यता का पता लगाता है। डेटाबेस तालिका नामों पर, एक फ़ैक्टरी फ़ंक्शन बनाया जा सकता है। फ़ैक्टरी फ़ंक्शन, 'getModel', तालिका नाम को एक तर्क के रूप में लेता है और एक गतिशील 'db_table' विशेषता के साथ एक मॉडल वर्ग लौटाता है। उदाहरण के लिए:
def getModel(db_table): कक्षा MyClass(मॉडल.मॉडल): # यहां मॉडल फ़ील्ड को परिभाषित करें क्लास मेटा: डीबी_टेबल = डीबी_टेबल रिटर्न मायक्लास
डायनेमिक क्लास नेम्स के लिए मेटाक्लास दृष्टिकोणdef getModel(db_table): class MyClass(models.Model): # Define model fields here class Meta: db_table = db_table return MyClass
class MyClassMetaclass(models.base.ModelBase): def __new__(cls, नाम, आधार, attrs): नाम = db_table वापसी मॉडल.बेस.मॉडलबेस.__नया__(सीएलएस, नाम, आधार, एटीआरएस) कक्षा MyClass(मॉडल.मॉडल): __metaclass__ = MyClassMetaclass क्लास मेटा: db_table = db_table
'db_table' विशेषता का गतिशील संशोधनclass MyClassMetaclass(models.base.ModelBase): def __new__(cls, name, bases, attrs): name = db_table return models.base.ModelBase.__new__(cls, name, bases, attrs) class MyClass(models.Model): __metaclass__ = MyClassMetaclass class Meta: db_table = db_table
MyModel._meta.db_table = '10293847_टेबल'इन तकनीकों का उपयोग करके, Django का उपयोग कई अस्थायी तालिकाओं के साथ इंटरफेस करने के लिए किया जा सकता है, जो गतिशील रूप से नामित तालिकाओं से डेटा पुनर्प्राप्ति को सक्षम बनाता है।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3