الانتقال إلى المحتوى الرئيسي

كيفية تمرير المعلمات في بيثون الحصول على طلب: أبسط الطرق

  • علاء الدّين بكر بن وائل
  • الأسئلة

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

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

1. استخدام وحدة الطلبات

وحدة طلبات يجعل من السهل ومريحة لتنفيذ طلبات هتب في بيثون. يمكنك استخدام سمة المعلمات لتمرير المعلمات في طلب جيت.

2. باستخدام أورليب

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

هذه ليست سوى عدد قليل من الطرق البسيطة لتمرير المعلمات في طلب جيت عند استخدام بيثون. كل واحد منهم له مزاياه الخاصة وهو مناسب لحالات الاستخدام المختلفة. يعتمد اختيار طريقة معينة على احتياجاتك وتفضيلاتك.

  1. كيفية تمرير المعلمات في بيثون الحصول على طلب: أبسط الطرق
  2. تمرير المعلمات عبر رابط
  3. استخدام مكتبة الطلبات
  4. باستخدام أورليب.تحليل
  5. باستخدام المتشعب.حزمة العميل
  6. تمرير المعلمات من خلال الرؤوس
  7. باستخدام المدمج في أورليب.طلب مكتبة
  8. سؤال وجواب

كيفية تمرير المعلمات في بيثون الحصول على طلب: أبسط الطرق

عندما تحتاج إلى إرسال طلب جيت ، فإن الطريقة الأكثر شيوعا هي تمرير المعلمات عبر عنوان ورل. يوفر بيثون عدة طرق بسيطة للقيام بذلك.

  • الطريقة 1: استخدام رابط مدمج.مكتبة التحليل

وحدة أورليب.يوفر تحليل وظيفة إرمنكود () التي تساعدك على تحويل القاموس مع المعلمات إلى سلسلة الاستعلام.

استيراد أورليب.تحليل

بارامس = {'بارام1': 'القيمة 1' ، 'بارام2': 'القيمة 2'}

سلسلة الاستعلام = رابط.تحليل.إرمنكود (بارامز)

رابط = 'https://example.com?' + الاستعلام _ سلسلة

رد = أورليب.طلب.url مفتوح (رابط)

في هذا المثال ، نقوم بإنشاء قاموس معلمات مع المعلمات التي نريد تمريرها. ثم نستخدم الدالة إرمنكود () لتحويل القاموس إلى سلسلة استعلام. نحن سلسلة سلسلة الاستعلام مع ورل قاعدة وإرسال الطلب باستخدام وظيفة إرموبين ().

  • الطريقة 2: استخدام مكتبة الطلبات

مكتبة الطلبات هي الخيار القياسي لإرسال طلبات هتب في بيثون. يوفر واجهة بسيطة لإنشاء الطلبات وإرسالها ، بما في ذلك تمرير المعلمات في طلب الحصول.

طلبات الاستيراد

بارامس = {'بارام1': 'القيمة 1' ، 'بارام2': 'القيمة 2'}

الحصول على('https://example.com' ، بارامز = بارامز)

في هذا المثال ، نقوم بإنشاء قاموس معلمات مع المعلمات التي نريد تمريرها. نحن تمرير هذا القاموس إلى الحصول على() وظيفة كحجة إلى بارامز. تقوم مكتبة الطلبات تلقائيا بتحويل القاموس إلى سلسلة استعلام وتضيفه إلى عنوان ورل.

كل من هذه الأساليب هي بسيطة ومريحة لتمرير المعلمات في طلب جيت في بيثون. يعتمد اختيار الطريقة على تفضيلاتك ومتطلبات مشاريعك.

تمرير المعلمات عبر رابط

يعد تمرير المعلمات عبر عنوان ورل أحد أبسط الطرق وأكثرها شيوعا لنقل البيانات بين العميل والخادم. يتم إضافة المعلمات إلى عنوان ورل كسلسلة وفصلها عن العنوان الرئيسي بواسطة رمز السؤال'?’. بعد ذلك ، يتم تعيين كل معلمة كقيمة مفتاح مفصولة بالرمز يساوي '='. إذا كنت بحاجة إلى تمرير العديد من المعلمات ، يتم فصلها بواسطة حرف العطف'&'.

مثال:

https://example.com/page?param1=value1&param2=value2&param3=value3

في هذا المثال ، ورل الرئيسي هو 'https://example.com/page' ، ويتم تمرير المعلمات كما يتضاعف ثلاث مرات قيمة المفتاح: 'بارام1 = قيمة1' ، 'بارام2 = قيمة2' ، 'بارام3 = قيمة3'.

من أجل الوصول إلى المعلمات التي تم تمريرها في بيثون ، يمكنك استخدام ورليب.وحدة تحليل. أنه يحتوي على وظيفة بارس_كس ، والذي يسمح لك لتحليل سلسلة من المعلمات والحصول على القاموس مع القيم التي تم تمريرها.

مثال:

من أورليب.تحليل استيراد

رابط = "https://example.com/page?param1=value1&param2=value2&param3=value3"

بارامز = بارس_كس(ورل.انشق ، مزق ('?')[1])

طباعة (بارامز)

في هذا المثال ، أولا نحن تقسيم ورل إلى قسمين: العنوان الرئيسي وسلسلة المعلمة. بعد ذلك ، باستخدام وظيفة التحليل اللغوي ، نقوم بتحليل سلسلة المعلمات والحصول على قاموس بالقيم التي تم تمريرها:

{'بارام1': ['قيمة 1'] ، 'بارام2': ['قيمة 2'] ، 'بارام3': ['قيمة 3']}

يحتوي القاموس الناتج على النموذج {مفتاح: [قيمة]} ، حيث يتوافق كل مفتاح مع قائمة القيم. إذا تم نقل القيمة عدة مرات ، فسيتم تقديمها كقائمة.

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

استخدام مكتبة الطلبات

مكتبة الطلبات هي واحدة من مكتبات بايثون الأكثر شعبية لتنفيذ طلبات هتب. يوفر طريقة بسيطة ومريحة لإرسال الطلبات إلى الخادم وتلقي الردود.

يمكنك استخدام مدير حزمة النقطة لتثبيت مكتبة الطلبات:

طلبات تثبيت النقطة

بعد تثبيت مكتبة الطلبات ، يمكنك البدء في استخدامها في التعليمات البرمجية الخاصة بك.

إرسال طلب الحصول مع المعلمات

. يتم تمرير المعلمات في شكل قاموس ، حيث المفاتيح هي أسماء المعلمات ، والقيم هي قيمها.

مثال:

طلبات الاستيراد

رابط = "https://api.مثال .كوم"

بارامز = {

"بارام1":"القيمة 1",

"بارام2":"القيمة 2"

}

الاستجابة = الطلبات.الحصول على (ورل ، بارامز = بارامز)

طباعة (استجابة.النص)

.

هو أسهل للاستخدام لإرسال طلبات الحصول مع المعلمات.

باستخدام أورليب.تحليل

وحدة أورليب.تحليل هو جزء من مكتبة بيثون القياسية ويوفر وظائف لتحليل وجمع عناوين المواقع.

باستخدام أورليب.تحليل ، يمكنك بسهولة تمرير المعلمات في الحصول على طلبات. للقيام بذلك ، استخدم الدالة إرمنكود ().

مثال على الاستخدام:

من أورليب.تحليل استيراد إرمنكود

بارامز = {

'بارام1':'القيمة 1',

'بارام2':'قيمة2',

'بارام3':'قيمة3'

}

كيري_سترينغ = إرمنكود (بارامز)

# النتيجة: بارام1 = القيمة1 و بارام2 = القيمة2 و بارام3 = القيمة3

طباعة (سلسلة استعلام)

في هذا المثال ، يتم إنشاء قاموس المعلمات ، والذي يحدد المعلمات وقيمها. وظيفة إرمنكود () ثم يحول القاموس إلى سلسلة مع المعلمات التي يمكن أن تضاف إلى ورل كما الحصول على المعلمات.

إذا كانت قيمة المعلمة قائمة ، فسيتم إنشاء نسخ متعددة من هذه المعلمة بقيم مختلفة:

من أورليب.تحليل استيراد إرمنكود

بارامز = {

'بارام1': ['القيمة 1' ، 'القيمة 2'],

'بارام2':'قيمة3'

}

كيري_سترينغ = إرمنكود (بارامز)

# النتيجة: بارام1 = القيمة 1 و بارام1 = القيمة 2 و بارام2 = القيمة 3

طباعة (سلسلة استعلام)

في بعض الأحيان يكون من الضروري تمرير المعلمات بمسافات أو أحرف خاصة. في هذه الحالة ، وظيفة إرمنكود () تلقائيا بترميز قيم المعلمة في تنسيق ورل. على سبيل المثال:

من أورليب.تحليل استيراد إرمنكود

بارامز = {

'بارام1': 'القيمة 1',

'بارام2':'خاص_الخصائص_@'

}

كيري_سترينغ = إرمنكود (بارامز)

# النتيجة: بارام1 = القيمة٪201 و بارام2=خاص_الخصائص _ ٪40

طباعة (سلسلة استعلام)

الآن يمكنك استخدام سلسلة كيري_سترينغ الناتجة لإنشاء عنوان ورل كامل مع الحصول على معلمات الطلب.

باستخدام أورليب.سيجعل التحليل تمرير المعلمات في طلبات الحصول على أكثر ملاءمة وسيسمح لك بمعالجة الأحرف الخاصة تلقائيا في قيم المعلمات.

باستخدام المتشعب.حزمة العميل

المتشعب.العميل هو حزمة بيثون القياسية التي توفر وظائف للعمل مع بروتوكول هتب. يمكنك استخدامه لإرسال طلبات الحصول وتمرير المعلمات إلى عنوان ورل.

لبدء العمل مع المتشعب.حزمة العميل ، تحتاج إلى استيراد الوحدة المناسبة:

استيراد المتشعب.العميل

.

Пример отправки GET-запроса с параметрами:

import http.client

conn = http.client.HTTPConnection("example.com")

params = "/path?param1=value1&param2=value2"

conn.request("GET", params)

response = conn.getresponse()

data = response.read()

print(data.decode())

جنبا إلى جنب مع المعلمات لدينا.

. في هذا المثال ، نقوم بفك تشفير البيانات المستلمة وعرضها على الشاشة.

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

تمرير المعلمات من خلال الرؤوس

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

تحتوي رؤوس هتب على بيانات وصفية حول الطلب أو الاستجابة ، بما في ذلك المعلمات التي يمكن تمريرها في الطلب. واحدة من الطرق الأكثر شيوعا لتمرير المعلمات من خلال رؤوس هو استخدام رأس "س رأس".

بناء الجملة لتمرير المعلمات من خلال الرؤوس بسيط: تحتاج إلى إضافة رأس "س-هيد" إلى طلب هتب مع المعلمات اللازمة. يمكن تمثيل قيمة الرأس كسلسلة أو بيانات منظمة ، على سبيل المثال بتنسيق جسون.

مزايا تمرير المعلمات من خلال الرؤوس:

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

مثال على تمرير المعلمات عبر رؤوس هتب:

هتب هيدالمعنى
س-رأسبارام1 = القيمة1 و بارام2 = القيمة2

على الخادم ، يمكن استخراج المعلمات من رأس" س-هيد " ومعالجتها باستخدام التعليمات البرمجية المناسبة.

من المهم ملاحظة أن تمرير المعلمات عبر الرؤوس قد يكون محدودا بقواعد أو قيود معينة يحددها الخادم أو التطبيق الذي يعالج الطلبات. قد تكون هذه القيود مرتبطة بالحد الأقصى لحجم الرؤوس أو الوصول إلى رؤوس معينة أو نهج الأمان.

باستخدام المدمج في أورليب.طلب مكتبة

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

ربط المكتبة

أولا ، تحتاج إلى توصيل عنوان العنوان.طلب وحدة:

استيراد أورليب.الطلب

إنشاء عنوان ورل مع المعلمات

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

رابط = "https://www.example.com/api/"

بارامز = {'معرف': 1 ، 'اسم': 'جون'}

سلسلة الاستعلام = رابط.تحليل.إرمنكود (بارامز)

with مع_بارامز = رابط+'?'+استفسار_سلسلة

في هذا المثال ، قمنا بإنشاء عنوان ورل عن طريق إضافة المعلمات 'معرف' مع القيمة 1 و 'اسم' مع قيمة 'جون' إلى العنوان الأساسي '/أبي/'.

تنفيذ طلب الحصول على

بعد ذلك ، يمكنك تقديم طلب الحصول باستخدام عنوان ورل الذي تم إنشاؤه. للقيام بذلك ، يمكنك استخدام وظيفة إرموبين من أورليب.طلب وحدة:

رد = أورليب.طلب.url مفتوح (with مع_بارامز)

البيانات = الاستجابة.اقرأ()

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

معالجة البيانات المستلمة

بعد تنفيذ طلب الحصول على واستلام البيانات ، يمكنك معالجتها وفقا لمتطلبات البرنامج الخاص بك. على سبيل المثال ، يمكنك تحليل جسون الناتجة واستخراج القيم التي تحتاج إليها.

طلب إكمال

من المهم ألا تنسى إغلاق الاتصال بعد إكمال طلب الحصول. للقيام بذلك ، يمكنك استخدام طريقة الإغلاق () لكائن الاستجابة:

الرد.إغلاق()

في هذا المثال ، نسمي طريقة الإغلاق () لإغلاق الاتصال بعد تلقي البيانات.

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

سؤال وجواب