طلبات بايثون: كل ما تحتاج إلى معرفته



ستوجهك هذه المدونة عبر وحدة طلبات بيثون بالتفصيل. سوف تتعرف على طلبات GET و POST وعناصر الجلسة وملفات تعريف الارتباط والعناوين الرئيسية.

تطلب Python حقيبة ما يقرب من 400000 تنزيل كل يوم. هذا الرقم واضح بما يكفي لفهم شعبية هذا . في السنوات الأخيرة ، أصبحت لغة برمجة Python أكثر لغات البرمجة المرغوبة للعديد من المطورين. تعد المفاهيم والمكتبات مثل الطلبات أحد الأسباب العديدة التي تدفع المطورين للانتقال من لغات البرمجة الأخرى إلى لغة Python. في هذه المدونة سنتطرق إلى المواضيع التالية:

ما هي طلبات بايثون؟

تمت كتابة طلبات Python بواسطة Kenneth Reitz وتم ترخيصها بموجب apache 2.0. إنها مكتبة HTTP صديقة للإنسان كما هو مذكور في صفحة التوثيق الرسمية. إنه سهل الاستخدام ويستخدم بشكل أساسي لعمل جميع أنواع طلبات HTTP. فيما يلي بعض الميزات المتقدمة التي تأتي مع الطلبات:
  1. ابق على قيد الحياة وتجمع الاتصالات
  2. المجالات الدولية وعناوين المواقع
  3. الجلسات مع استمرار ملفات تعريف الارتباط
  4. التحقق من SSL بنمط المتصفح
  5. فك المحتوى التلقائي
  6. مصادقة أساسية / خلاصة
  7. ملفات تعريف الارتباط ذات المفتاح / القيمة الأنيقة
  8. الضغط التلقائي
  9. هيئات استجابة يونيكود
  10. دعم وكيل HTTPs
  11. تحميلات ملف متعدد الأجزاء
  12. تحميل الجري
  13. مهلات الاتصال
  14. طلبات مجزأة
هذه هي جميع الميزات المتقدمة لمكتبة طلبات Python ، دعنا نحاول فهم سبب استخدامنا لطلبات Python في المقام الأول.

لماذا تستخدم طلبات بايثون؟

عندما يتعلق الأمر لماذا نستخدم طلبات بايثون؟ السبب بسيط جدا. أثناء استخدام طلبات Python ، لا يتعين عليك إضافة الاستعلامات يدويًا إلى عناوين url الخاصة بك وبيانات النشر بترميز النموذج. يجعل مهمتنا أسهل عند تقديم طلبات http من أي نوع.الآن بعد أن أصبحنا على دراية بطلبات Python ولماذا نستخدمها في Python ، دعنا نحاول فهم كيف سنقوم بتثبيت الطلبات على مشروعنا أو نظامنا.

كيفية تثبيت طلبات Python؟

جزء التثبيت سهل للغاية أيضًا. إذا كان لديك إعداد pipenv مثبتًا على نظامك ، فيمكنك ببساطة تشغيل الأمر التالي في الجهاز.

طلبات التثبيت بالدولار الأمريكي

سيؤدي هذا إلى تثبيت مكتبة الطلبات على نظامك. هناك طريقة أخرى لتثبيت الطلبات. إذا كنت تستخدم pycharm ، يمكنك إضافة طلبات إلى مترجم المشروع في الإعدادات. إنه يخدم نفس الغرض مثل الجهاز في حالة تثبيت المكتبة في مشروعنا.الآن بعد أن انتهينا من التثبيت ، دعنا نحاول فهم كيفية إجراء الحصول على الطلبات ونشرها في Python.

كيف يمكنني الحصول على الطلبات وإرسالها؟

يتم استخدام طلب الحصول بشكل أساسي على طلب البيانات من الخادم. فيما يلي بناء الجملة لتقديم طلب الحصول.
طلبات الاستيراد res = request.get ('url') #res هو كائن الاستجابة هنا.
يتم استخدام طلب النشر لإرسال البيانات المراد معالجتها إلى الخادم. فيما يلي بناء الجملة لتقديم طلب نشر.
تحميل طلبات الاستيراد = {'key1': 'value1'} res = request.post ('url'، data = payload)
الآن بعد أن عرفنا كيف يمكننا الحصول على الطلبات ونشرها ، دعنا نلقي نظرة على كيفية تمرير المعلمات إلى عنوان url باستخدام طلب get.

تمرير المعلمات في عنوان URL

يعد تمرير المعلمات في عنوان URL أمرًا بسيطًا مثل تقديم طلب الحصول على. فيما يلي مثال لتمرير المعلمات إلى عنوان url.
تحميل طلبات الاستيراد = {'key1': 'value1'، 'key2': 'value2'} res = calls.get ('url'، params = payload) print (res.url) # هذا سيطبع عنوان url مع المعلمات مرت من خلال طلب الحصول.

رمز الحالة

يمكننا التحقق من رمز الحالة أيضًا ، فيما يلي رمز التحقق من رمز الحالة:





طلبات الاستيراد res = request.get ('url') طباعة (res.status_code ())
إذا كان الرمز يعيد 200 ، فهذا يعني أنه لا يوجد خطأ وأن الطلب جيد. إذا قدمنا ​​طلبًا سيئًا ، فسيعيد الرمز رمزًا مثل 404 أو 505 مما سيؤدي إلى ظهور خطأ http.

محتوى الاستجابة

يمكننا أيضًا قراءة محتويات استجابة الخادم. ستقوم المكتبة تلقائيًا بفك تشفير المحتوى من الخادم.
طلبات الاستيراد res = request.get ('url') طباعة (res.content)

تحتوي الطلبات أيضًا على وحدة فك ترميز json مدمجة.

دمج خوارزمية فرز c ++
طلبات الاستيراد res = calls.get ('url') print (res.json ()) # هذا سيحصل على الاستجابة بتنسيق json

تحميل ملف متعدد الأجزاء

من السهل جدًا تحميل ملفات متعددة الأجزاء باستخدام الطلبات.
ملفات طلبات الاستيراد = {'file': open ('filename'، 'rb')} res = request.post ('url'، files = files) print (res.text)
لإرسال ملفات متعددة ، سنحدد ملفات متعددة في معلمة files.

ملفات تعريف الارتباط والرؤوس

يمكننا عرض رؤوس استجابة الخادم وملفات تعريف الارتباط باستخدام كائن الاستجابة. فيما يلي رمز لعرض رؤوس الخادم.
طلبات الاستيراد res = request.get ('url') طباعة (res.headers)
يمكننا تمرير رؤوس مخصصة إلى عنوان url أيضًا. دعنا نلقي نظرة على الكود.
رؤوس طلبات الاستيراد = {'key1': 'value1'} res = calls.get ('url'، headers = headers) print (res.headers)
لا تغير الطلبات سلوكها بناءً على رؤوس مخصصة. يتم تمريرها ببساطة إلى الطلب النهائي. بسكويت يمكن أيضًا عرضها باستخدام كائن الاستجابة.
طلبات الاستيراد # لتمرير ملفات تعريف الارتباط الخاصة بنا ، يمكننا استخدام ملفات تعريف الارتباط لمعلمات ملفات تعريف الارتباط = ديكت (ملفات تعريف الارتباط = 'العمل')

يتم إرجاع ملفات تعريف الارتباط في RequestCookieJar ، والذي يعمل مثل قاموس ولكنه يوفر أيضًا واجهة أكثر اكتمالاً ، ومناسبة للاستخدام عبر مجالات أو مسارات متعددة.



كائن الجلسة

يسمح لك كائن الجلسة بالاستمرار في معلمات معينة عبر الطلبات.
  • تستمر ملفات تعريف الارتباط عبر جميع الطلبات المقدمة من نسخة الجلسة
  • استخدم تجميع اتصالات urllib3
  • زيادة كبيرة في الأداء
  • يحتوي كائن الجلسة على جميع طرق واجهة برمجة التطبيقات للطلبات الرئيسية
فيما يلي رمز استمرار بعض ملفات تعريف الارتباط عبر الطلبات.
s = request.session () s.get ('url') res = s.get ('url') طباعة (res.text)

الأخطاء والاستثناءات

فيما يلي الأخطاء والاستثناءات التي تظهر في طلب Python.
  • في حالة حدوث مشكلة في الشبكة ، ستؤدي الطلبات إلى استثناء خطأ اتصال.
  • سيؤدي Response.raise_for_status () إلى ظهور خطأ HTTP عند وجود رمز حالة غير ناجح.
  • إذا كانت هناك مهلة ، فسيتم رفع استثناء المهلة
  • يظهر استثناء TooManyRedirects إذا تجاوز الطلب العدد الأقصى الذي تم تكوينه من عمليات إعادة التوجيه.
ناقشنا في هذه المدونة وحدة طلبات python التي لدينا فيها العديد من الميزات المتقدمة. ناقشنا التثبيت وتقديم طلب الحصول عليه ونشره مع محتوى الاستجابة والمفاهيم الأخرى في مكتبة الطلبات في بيثون. تعد وحدة الطلبات في Python واحدة من العديد من الميزات غير العادية خارج الصندوق في لغة برمجة بايثون . يمكنك بدء التعلم من خلال التسجيل في واكتشف إمكانيات لغة برمجة Python. هل لديك أي استفسار؟ أذكرها في قسم التعليقات ، وسنعاود الاتصال بك.