values وvalues_list وcount
استخرج بيانات خفيفة وتجميعات
values وvalues_list وcount درس مجاني في Django Academy على CoddyKit. هذا هو الدرس 4 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في Django Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة Django Academy 4 دروس في المجموع.
لماذا نستخدم الأدوات الخفيفة
تحمل كائنات النماذج الكاملة كل الحقول. عندما تحتاج إلى عمود واحد أو عمودين فقط، تجلب الأدوات الأخف بيانات أقل وتعمل بسرعة أكبر.
تعيد values() قواميس
استدعِ values() ليعود كل صف في صورة قاموس بدلًا من مثيل نموذج. وهذا مفيد لـ JSON وعمليات القراءة السريعة.
Book.objects.values("title", "year")اختر ما تحتاج إليه فقط
حدّد أسماء الحقول التي تمررها إلى values()، وسيحدد Django تلك الأعمدة فقط، مما يجعل كل قاموس صغيرًا ومركّزًا.
Book.objects.values("title")تعيد values_list() صفوفًا
هل تفضّل الصفوف؟ تعيد values_list() كل صف في صورة صف من القيم بالترتيب الذي حدّدت به الحقول.
Book.objects.values_list("title", "year")تبسيط عمود واحد
هل تطلب حقلًا واحدًا؟ أضف flat=True لتحصل على قائمة واضحة من القيم العادية بدلًا من صفوف تحتوي على عنصر واحد.
Book.objects.values_list("title", flat=True)يتطلب flat حقلًا واحدًا
تذكّر أن flat=True يعمل مع حقل واحد فقط. مرّر حقلين، وسيُصدر Django خطأً للحفاظ على الوضوح.
تظل هذه كائنات QuerySet
يظل كل من values() وvalues_list() عبارة عن QuerySet كسول، لذلك يمكنك تصفيتهما وترتيبهما قبل تنفيذهما.
Book.objects.filter(published=True).values("title")العدّ دون التحميل
هل تحتاج إلى العدد فقط؟ يطلب count() من قاعدة البيانات عدّ الصفوف مباشرةً، وهو أوفر بكثير من جلبها كلها إلى Python.
Book.objects.filter(published=True).count()count مقارنةً بـ len
استخدم count() عندما تحتاج إلى العدد فقط. يؤدي استدعاء len() أولًا إلى تحميل كل الكائنات، ثم عدّها في الذاكرة.
هل توجد أي مطابقة
للتحقق من وجود صفوف، يتفوق exists() على count(). فهو يتوقف عند أول مطابقة ويُرجع True أو False بسيطًا.
Book.objects.filter(year=2024).exists()الجمع لقراءة منظمة
اخلط هذه الأدوات بحرية: استخدم filter للتضييق، ثم values_list للحصول على قائمة مرتبة أو count للحصول على العدد. يظل كل استعلام مقتصدًا.
Book.objects.filter(published=True).values_list("id", flat=True)تحقق سريع
تريد قائمة عادية بكل عناوين الكتب، لا صفوفًا ولا قواميس. ماذا تستخدم؟
مراجعة
رائع! تعطيك values() قواميس، وتعطيك values_list() صفوفًا، ويحسب count() إجمالي الصفوف في قاعدة البيانات. 📊
تعلم Python مع معلم ذكاء اصطناعي — مجانًا
اكتب وقم بتشغيل أكوادك الفعلية في المتصفح، واحصل على مساعدة فورية من معلم ذكاء اصطناعي متاح 24/7، واستمر من حيث توقفت على الويب أو في التطبيق.
- الدورات
- 30
- الدروس
- 120
الأسئلة الشائعة
هل درس «values وvalues_list وcount» مجاني؟
نعم — نص درس «values وvalues_list وcount» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة Django Academy، انتقل إلى CoddyKit PRO. تتضمن دورة Django Academy 4 دروس في المجموع.
ماذا ستتعلم في «values وvalues_list وcount»؟
استخرج بيانات خفيفة وتجميعات تتمرن على Django Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Django Academy؟
لا تُشترط خبرة سابقة. Django Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 4 من أصل 4.
كم من الوقت يستغرق درس «values وvalues_list وcount»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Django Academy هذا؟
نعم. كل درس في Django Academy يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- all() وget() وfilter()
- عمليات البحث في الحقول وexclude()
- order_by والتقطيع والتقييم الكسول
- values وvalues_list وcount