डेटाबेस से डेटा पढ़ें
निम्नलिखित विधियां आपको डेटाबेस से डेटा लोड करने की अनुमति देती हैं।
-
प्राप्त करें (*Args, *\ * kwargs) -> नमूना
-
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool] -
first(*args, **kwargs) -> Model -
all(*args, **kwargs) -> List[Optional[Model]] -
iterate(*args, **kwargs) -> AsyncGenerator[Model] -
नमूना
- मॉडल.लोड () विधि
-
क्वेरी सेट एजेंट
-
QuerysetProxy.get(*args, **kwargs)विधि QuerysetProxy.get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs)विधिQuerysetProxy.first(*args, **kwargs)विधिQuerysetProxy.all(*args, **kwargs)विधि
प्राप्त करें
प्राप्त करें (*args, *\ * kwargs) -> नमूना
डेटाबेस से पहली पंक्ति प्राप्त करता है जो kwarसेट स्थितियों को संतुष्ट करता है।
यदि कोई स्थिति सेट नहीं है, तो यह कॉलम पीके द्वारा क्रमबद्ध डेटाबेस में अंतिम पंक्ति लौटाता है।
एक स्थिति को पारित करना वास्तव में फ़िल्टर को कॉल करता है (*args, *\ * kwargs) विधि नीचे वर्णित है।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | |
!!!चेतावनी, यदि कोई पंक्ति स्थिति को पूरा नहीं करती है, तो एक Noअपवाद फेंक दिया जाएगा।
1 | |
जाओ या कुछ नहीं
get_or_none(*args, **kwargs) -> Model
यह ठीक वैसा ही है जैसा ऊपर वर्णित है, लेकिन यदि मानदंडों से मेल खाने वाला कोई डेटाबेस रिकॉर्ड नहीं पाया जाता है, तो किसी अपवाद को फेंकने के बजाय कोई भी वापस नहीं किया जाता है।
प्राप्त करें या बनाएं
get_or_create(_defaults: Optional[Dict[str, Any]] = None, *args, **kwargs) -> Tuple[Model, bool]
विधियों का एक संयोजन बनाएं और प्राप्त करें।
मानदंडों को पूरा करने वाली पंक्तियों को प्राप्त करने का प्रयास, और यदि कोई Noअपवाद फेंक दिया जाता है, तो दिए गए kwarऔर \ _ डिफ़ॉल्ट के साथ एक नई पंक्ति बनाई जाती है।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | |
!!!चेतावनी: डेटाबेस में समान पंक्तियाँ होने के बावजूद, ऊपर दिए गए उदाहरण में एल्बम और एल्बम 2 दो अलग-अलग पायथन ऑब्जेक्ट हैं! उनमें से एक को अपडेट करना दूसरे को ताज़ा नहीं करता है जब तक कि आप स्पष्ट रूप से लोड नहीं करते हैं () डेटाबेस से नया डेटा।
ध्यान दें कि यदि आप एक नई वस्तु बनाना चाहते हैं, तो आपको या तो pk कॉलम मान पास करना होगा, या pk कॉलम को ऑटो-इन्क्रीमेंट पर सेट किया जाना चाहिए
पहले
first(*args, **kwargs) -> Model
डेटाबेस से प्राथमिक कुंजी कॉलम द्वारा आरोही क्रमबद्ध करना में क्रमबद्ध पहली पंक्ति हो जाती है।
1 2 3 4 5 6 7 8 9 10 11 12 | |
सभी
all(*args, **kwargs) -> List[Optional["Model"]]
सेट फ़िल्टर विकल्प के लिए, दिए गए नमूना के लिए डेटाबेस में सभी पंक्तियों को लौटाता है।
Kwarपासिंग एक शॉर्टकट है, जो कॉलिंग फिल्टर के बराबर है (*Args, *\ * kwargs).all ()।
यदि कोई पंक्ति नहीं है जो स्थिति को संतुष्ट करती है, तो एक खाली सूची वापस आ जाती है।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | |
पुनरावृत्ति
iterate(*args, **kwargs) -> AsyncGenerator["Model"]
किसी दिए गए नमूना के लिए डेटाबेस में सभी पंक्तियों के लिए एक अतुल्यकालिक पुनरावृत्त जनरेटर लौटाता है।
arऔर / या kwarपासिंग एक शॉर्टकट है जो कॉलिंग के बराबर है filter(*args, **kwargs).iterate() ...
यदि कोई पंक्तियाँ नहीं हैं जो स्थिति को संतुष्ट करती हैं, तो एक खाली अतुल्यकालिक जनरेटर वापस आ जाता है।
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | |
!!!चेतावनी, पुनरावृत्त () का उपयोग करने से पिछली कॉल को प्रीफेच \ _ lated () को नजरअंदाज कर दिया जाएगा; क्योंकि ये दो अनुकूलन एक साथ समझ में नहीं आते हैं।
1 | |
नमूना विधि
प्रत्येक नमूना उदाहरण में स्वयं को सहेजने, अपडेट करने या लोड करने के तरीकों का एक सेट होता है।
लोड
आप लोड () विधि को कॉल करके एक विदेशी कुंजी संबंधित नमूना लोड कर सकते हैं।
लोड () का उपयोग डेटाबेस से नमूना को ताज़ा करने के लिए किया जा सकता है यदि इसे किसी अन्य प्रक्रिया द्वारा बदल दिया गया है।
!!!टिप नमूना विधि में लोड () विधि के बारे में अधिक पढ़ें
QueryProविधि
प्रासंगिक MToफ़ील्ड और seसीधे एक्सेस करते समय, संबंधित मॉडल की एक सूची वापस आ जाती है।
लेकिन यह क्वेरीसेट एपीआई के एक सबसेट को भी उजागर करता है, इसलिए आप मूल नमूना से सीधे संबंधित मॉडल को फ़िल्टर कर सकते हैं, बना सकते हैं, चुन सकते हैं।
प्राप्त करें
कार्य सिद्धांत बिल्कुल ऊपर दिए गए फ़ंक्शन के समान है, लेकिन यह आपको रिश्ते के दूसरे छोर से संबंधित वस्तुओं को पुनः प्राप्त करने की अनुमति देता है।
!!!QueryProके बारे में अधिक जानने के लिए, QueryProअनुभाग पर जाएं
जाओ या कुछ नहीं
यह ठीक वैसा ही है जैसा ऊपर वर्णित है, लेकिन यदि मानदंडों से मेल खाने वाला कोई डेटाबेस रिकॉर्ड नहीं पाया जाता है, तो किसी अपवाद को फेंकने के बजाय कोई भी वापस नहीं किया जाता है।
!!!QueryProके बारे में अधिक जानने के लिए, QueryProअनुभाग पर जाएं
प्राप्त करें या बनाएं
वास्तव में ऊपर दिए गए फ़ंक्शन के समान है, लेकिन आपको संबंध के दूसरे छोर से संबंधित ऑब्जेक्ट्स को क्वेरी करने या बनाने की अनुमति देता है।
!!!QueryProके बारे में अधिक जानने के लिए, QueryProअनुभाग पर जाएं
पहले
यह ऊपर दिए गए पहले फ़ंक्शन के समान है, लेकिन आपको रिश्ते के दूसरे छोर से संबंधित वस्तुओं को क्वेरी करने की अनुमति देता है।
!!!QueryProके बारे में अधिक जानने के लिए, QueryProअनुभाग पर जाएं
सभी
उपरोक्त सभी के समान कार्यक्षमता, लेकिन आपको रिश्ते के दूसरे छोर से संबंधित वस्तुओं को क्वेरी करने की अनुमति देता है।
!!!QueryProके बारे में अधिक जानने के लिए, QueryProअनुभाग पर जाएं