Mohssen A Mohssen نشر 23 فبراير 2022 أرسل تقرير نشر 23 فبراير 2022 ماهو الفرق بين الكود التالي: request.POST.get('KEY') وهذا الكود: request.POST['KEY'] قمت بتجربة كلا الأمرين وحصلت على نفس النتيجة، لذلك كنت أتسأل عن الفرق بينهما؟ 1 اقتباس
1 مسعود زاهي نشر 23 فبراير 2022 أرسل تقرير نشر 23 فبراير 2022 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 اقتباس
1 Bassam Ahmed3 نشر 23 فبراير 2022 أرسل تقرير نشر 23 فبراير 2022 الفرق بين السطرين هو الآتي : السطر الأول : request.POST.get('KEY') سيقوم بإرجاع القيمة None إذا لم يكن المفتاح أو الكلمة المطلوب إستدعاؤها غير متوفره فهو سطر يقصد به أجلب تلك القيمه فإذا لم تكن متواجده فسيرجع بالرد None فهو مثل تماماً try , except try: x = request.POST['key'] except KeyError: x = None أما السطر الثاني : request.POST['KEY'] سيعطي خطأ Error بمجرد عدم تواجد المفتاح أو القيمة المطلوب إيجادها 1 اقتباس
السؤال
Mohssen A Mohssen
ماهو الفرق بين الكود التالي:
وهذا الكود:
قمت بتجربة كلا الأمرين وحصلت على نفس النتيجة، لذلك كنت أتسأل عن الفرق بينهما؟
2 أجوبة على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.