اذهب إلى المحتوى
  • 0

ما الفرق بين التابع get و إستخدام القاموس مباشرة في جانغو Django؟

Mohssen A Mohssen

السؤال

ماهو الفرق بين الكود التالي:

request.POST.get('KEY')

وهذا الكود:

request.POST['KEY']

قمت بتجربة كلا الأمرين وحصلت على نفس النتيجة، لذلك كنت أتسأل عن الفرق بينهما؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

request.POST هو عبارة عن قاموس (dictionary) في بايثون أي هو عبارة عن مجاميع غير مرتبة من الأزواج (مفتاح: قيمة) مع إشتراط كون المفاتيح ذات قيم فريدة أي غير مُكَرَّرة.

إستعمالٌك ل request.POST['KEY'] قدْ يُثير الخطأ KeyError في حالة عدم تواجد المفتاح KEY في القاموس.

أما إستعمالُك ل request.POST.get('KEY') لا يُثير الخطأ وإنما يقوم بإرجاع القيمة None في حالة عدم تواجد المفتاح في القاموس.

بالإضافة إلى أن استعمال get يُتيح لك خاصية إضافية وهي إرجاع قيمة إفتراضية في حالة عدم تواجد المفتاح في القاموس. مثلاً:

>>> value = request.POST.get('KEY')
>>> print(value)
None
>>> value = request.POST.get('KEY', 'القيمة الإفتراضية')
>>> print(value)
'القيمة الإفتراضية'

لمزيد من المعلومات عن القواميس يُمكنك زيارة موسوعة حسوب.

كما يُمكنك قراءة بعض المقالات الموجودة في أكاديمية حسوب:

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 1

الفرق بين السطرين هو الآتي :

السطر الأول :

request.POST.get('KEY')

سيقوم بإرجاع القيمة None إذا لم يكن المفتاح أو الكلمة المطلوب إستدعاؤها غير متوفره فهو سطر يقصد به أجلب تلك القيمه فإذا لم تكن متواجده فسيرجع بالرد None فهو مثل تماماً try , except

try:
    x = request.POST['key']
except KeyError:
    x = None

أما السطر الثاني :

request.POST['KEY']

سيعطي خطأ Error بمجرد عدم تواجد المفتاح أو القيمة المطلوب إيجادها

رابط هذا التعليق
شارك على الشبكات الإجتماعية

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...