order_by, Slicing और Lazy Evaluation
क्रमबद्ध करें, सीमित करें और समझें कि प्रश्न DB तक कब पहुँचते हैं
order_by, Slicing और Lazy Evaluation, CoddyKit पर Django Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। इस अध्ययन पथ के 3 तक कोई भी पाठ पूरा पढ़ना निःशुल्क है — इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ व्यावहारिक अभ्यास भी उपलब्ध कराता है। यह Django Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Django Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
पंक्तियों को क्रम में रखें
डेटाबेस की पंक्तियों का क्रम निश्चित नहीं होता। अपनी पसंद के किसी भी फ़ील्ड के आधार पर QuerySet को क्रमबद्ध करने के लिए order_by() कॉल करें।
Book.objects.order_by("title")अवरोही क्रम में सजाएँ
क्रम उलटने के लिए फ़ील्ड नाम के आगे माइनस चिह्न लगाएँ। इससे सबसे बड़ा या सबसे नया मान पहले आता है।
Book.objects.order_by("-year")कई फ़ील्ड के आधार पर क्रमबद्ध करें
order_by() में कई फ़ील्ड दें। Django पहले फ़ील्ड के आधार पर क्रमबद्ध करेगा और बराबरी होने पर अगले फ़ील्ड से क्रम तय करेगा।
Book.objects.order_by("author", "-year")ऊपर की कुछ पंक्तियाँ लें
Python सिंटैक्स से QuerySet को स्लाइस करने पर प्राप्त की जाने वाली पंक्तियों की संख्या सीमित हो जाती है। यह शीर्ष पाँच की सूची के लिए बिल्कुल उपयुक्त है।
Book.objects.order_by("-year")[:5]एक खंड स्लाइस करें
बीच का कोई हिस्सा लेने के लिए स्लाइसिंग में आरंभ और अंत दें। Django इसे आपके लिए LIMIT और OFFSET में बदल देता है। ✂️
Book.objects.all()[10:20]ऋणात्मक स्लाइसिंग नहीं
आप QuerySet पर ऋणात्मक इंडेक्स का उपयोग नहीं कर सकते। आखिरी पंक्तियाँ पाने के लिए पहले क्रम उलटें और फिर स्लाइस करें।
Book.objects.order_by("-id")[:1]क्वेरी आलसी होती हैं
QuerySet बनाने से डेटाबेस पर तुरंत कोई प्रभाव नहीं पड़ता। Django आलसी रहता है और तब तक प्रतीक्षा करता है जब तक आपको वास्तव में डेटा की ज़रूरत न हो।
qs = Book.objects.filter(published=True)क्वेरी कब चलती है
मूल्यांकन तब होता है जब आप लूप चलाते हैं, list() कॉल करते हैं या लंबाई जाँचते हैं। इसी क्षण SQL अंततः चलता है।
for book in qs:
print(book.title)अभी बनाएँ, बाद में चलाएँ
आलस्य की वजह से आप कई पंक्तियों में फ़िल्टर जोड़ सकते हैं, और Django अंत में केवल एक संयुक्त क्वेरी भेजता है।
qs = Book.objects.filter(year__gte=2020).order_by("title")परिणामों को कैश करना
QuerySet का मूल्यांकन हो जाने के बाद Django उसकी पंक्तियों को कैश कर लेता है। उसी चर का दोबारा उपयोग करने से डेटाबेस पर दूसरी बार जाने से बचा जा सकता है।
स्लाइसिंग भी आलसी रहती है
जिस स्लाइस का अभी मूल्यांकन नहीं हुआ है वह अब भी आलसी रहती है, इसलिए LIMIT SQL में जुड़ता है, Python में पंक्तियाँ घटाई नहीं जातीं।
top = Book.objects.order_by("-year")[:3]त्वरित जाँच
आपने फ़िल्टर किया हुआ QuerySet बनाया, लेकिन उस पर कभी लूप या list() नहीं चलाया। SQL कब चलेगा?
पुनरावृत्ति
आपने कर दिखाया! order_by() क्रमबद्ध करता है, स्लाइसिंग SQL में पंक्तियों की संख्या सीमित करती है, और आलसी मूल्यांकन का अर्थ है कि क्वेरी तभी चलती हैं जब उनका उपयोग किया जाए। ⚡
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “order_by, Slicing और Lazy Evaluation” पाठ निःशुल्क है?
हाँ — Django Academy अध्ययन पथ के 3 तक कोई भी पाठ, जिसमें “order_by, Slicing और Lazy Evaluation” भी शामिल है, यहाँ वेब पर पूरा पढ़ना निःशुल्क है। इसके बाद CoddyKit PRO हर पाठ अनलॉक करता है, साथ ही अंतर्निर्मित कोड संपादक और चौबीसों घंटे एआई शिक्षक के साथ इंटरैक्टिव अभ्यास भी उपलब्ध कराता है। Django Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“order_by, Slicing और Lazy Evaluation” में मैं क्या सीखूँगा?
क्रमबद्ध करें, सीमित करें और समझें कि प्रश्न DB तक कब पहुँचते हैं आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Django Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Django Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Django Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“order_by, Slicing और Lazy Evaluation” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Django Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Django Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- all(), get() और filter()
- Field Lookups और exclude()
- order_by, Slicing और Lazy Evaluation
- values, values_list और count