الفرق بين المراجعتين لصفحة: «Python/urllib/parse/quote plus»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote()</code> في بايثون}}</noinclude> هذه الدالة مشابهة للدالة quote()...' |
لا ملخص تعديل |
||
| سطر 1: | سطر 1: | ||
<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote()</code> في بايثون}}</noinclude> | <noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote()</code> في بايثون}}</noinclude> | ||
هذه الدالة مشابهة للدالة quote() ولكنّها تستبدل المسافات الفارغة بعلامات +، وهذا هو المطلوب لاقتباس قيم نماذج HTML عند بناء سلاسل الاستعلام النصية التي ستُستخدم في عنوان URL | هذه الدالة مشابهة للدالة <code>[[Python/urllib/parse/quote|quote()]]</code> ولكنّها تستبدل المسافات الفارغة بعلامات <code>+</code>، وهذا هو المطلوب لاقتباس قيم [[HTML/form|نماذج HTML]] عند بناء سلاسل الاستعلام النصية التي ستُستخدم في عنوان URL. | ||
== البنية العامة == | == البنية العامة == | ||
| سطر 13: | سطر 13: | ||
=== <code>safe</code> === | === <code>safe</code> === | ||
يحدّد هذا المعامل محارف ASCII الإضافية التي يجب على الدالة أن لا تحيطها بعلامات اقتباس. | يحدّد هذا المعامل محارف ASCII الإضافية التي يجب على الدالة أن لا تحيطها بعلامات اقتباس. | ||
تُهرّب علامات <code>+</code> في [[Python/str|السلسلة النصية]] الأصلية إلا إذا أدرجت كقيمة للمعامل <code>safe</code>. لا يأخذ المعامل <code>safe</code> القيمة الافتراضية <code>'/'</code> كما هو الحال مع الدالة <code>[[Python/urllib/parse/quote|quote()]]</code>. | |||
=== <code>string</code> === | === <code>string</code> === | ||
| سطر 39: | سطر 41: | ||
== انظر أيضًا == | == انظر أيضًا == | ||
* الدالة <code>[[Python/urllib/parse/quote|urllib.parse.quote()]]</code>: تستبدل الدالة الحروف الخاصة في السلسلة النصية المعطاة باستخدام علامة التهريب <code>%xx</code>. | * الدالة <code>[[Python/urllib/parse/quote|urllib.parse.quote()]]</code>: تستبدل الدالة الحروف الخاصة في السلسلة النصية المعطاة باستخدام علامة التهريب <code>%xx</code>. | ||
* الدالة <code>[[Python/urllib/parse/quote from bytes|urllib.parse.quote_from_bytes()]]</code>: تشبه هذه الدالة الدالة <code>quote()</code> ولكنّها تستقبل كائنات bytes عوضًا عن كائنات <nowiki/>[[Python/str|str]]، ولا تؤدي عمليات الترميز من السلاسل النصية إلى البايتات. | * الدالة <code>[[Python/urllib/parse/quote from bytes|urllib.parse.quote_from_bytes()]]</code>: تشبه هذه الدالة الدالة <code>[[Python/urllib/parse/quote|quote()]]</code> ولكنّها تستقبل كائنات <code>[[Python/bytes|bytes]]</code> عوضًا عن كائنات <nowiki/>[[Python/str|str]]، ولا تؤدي عمليات الترميز من السلاسل النصية إلى البايتات. | ||
* الدالة <code>[[Python/urllib/parse/unquote|urllib.parse.unquote()]]</code>: تحوّل الدالة الحروف المهرّبة بالصيغة <code>%xx</code> إلى الحروف الأصلية المكافئة لها. | * الدالة <code>[[Python/urllib/parse/unquote|urllib.parse.unquote()]]</code>: تحوّل الدالة الحروف المهرّبة بالصيغة <code>%xx</code> إلى الحروف الأصلية المكافئة لها. | ||
* الدالة <nowiki/>[[Python/urllib/parse/unquote plus|<code>urllib.parse.unquote_plus()</code>]]: هذه الدالة مشابهة للدالة <code>[[Python/urllib/parse/unquote|unquote()]]</code> ولكنّها تستبدل علامات <code>+</code> بالمسافات البيضاء، وهذا هو المطلوب عند إلغاء الاقتباس من قيم نماذج HTML. | * الدالة <nowiki/>[[Python/urllib/parse/unquote plus|<code>urllib.parse.unquote_plus()</code>]]: هذه الدالة مشابهة للدالة <code>[[Python/urllib/parse/unquote|unquote()]]</code> ولكنّها تستبدل علامات <code>+</code> بالمسافات البيضاء، وهذا هو المطلوب عند إلغاء الاقتباس من قيم نماذج HTML. | ||
مراجعة 20:38، 5 فبراير 2019
هذه الدالة مشابهة للدالة quote() ولكنّها تستبدل المسافات الفارغة بعلامات +، وهذا هو المطلوب لاقتباس قيم نماذج HTML عند بناء سلاسل الاستعلام النصية التي ستُستخدم في عنوان URL.
البنية العامة
urllib.parse.quote_plus(string, safe='', encoding=None, errors=None)
المعاملات
safe
يحدّد هذا المعامل محارف ASCII الإضافية التي يجب على الدالة أن لا تحيطها بعلامات اقتباس.
تُهرّب علامات + في السلسلة النصية الأصلية إلا إذا أدرجت كقيمة للمعامل safe. لا يأخذ المعامل safe القيمة الافتراضية '/' كما هو الحال مع الدالة quote().
string
يمكن أن يكون سلسلة نصية أو كائن bytes.
ملاحظة:
اعتُمد المعيار RFC 3986 عوضًا عن المعيار RFC 2396 لاقتباس سلاسل URL النصية في الإصدار 3.7 من بايثون، وقد أضيف الرمز "~" إلى مجموعة المحارف المحجوزة.
encoding و errors
يحدّد هذان المعاملان طريقة تعامل الدالة مع الحروف الخارجة عن الترميز ASCII، وكما هو مقبول في التابع str.encode(). يأخذ المعامل encoding القيمة الافتراضية 'utf-8'، أما المعامل errors فيأخذ القيمة الافتراضية 'strict' والتي تعني أنّ الحروف غير المدعومة ستتسبب في إطلاق الاستثناء UnicodeEncodeError. يجب عدم إعطاء قيمة للمعاملين encoding و errors إن كانت السلسلة النصية المعطاة من نوع bytes وإلا فإنّ الدالة ستُطلق الاستثناء TypeError.
أمثلة
يبين المثال التالي طريقة عمل الدالة:
>>> import urllib.parse
>>> urllib.parse.quote_plus('/El Niño/')
'%2FEl+Ni%C3%B1o%2F'
انظر أيضًا
- الدالة
urllib.parse.quote(): تستبدل الدالة الحروف الخاصة في السلسلة النصية المعطاة باستخدام علامة التهريب%xx. - الدالة
urllib.parse.quote_from_bytes(): تشبه هذه الدالة الدالةquote() ولكنّها تستقبل كائناتbytesعوضًا عن كائنات str، ولا تؤدي عمليات الترميز من السلاسل النصية إلى البايتات. - الدالة
urllib.parse.unquote(): تحوّل الدالة الحروف المهرّبة بالصيغة%xxإلى الحروف الأصلية المكافئة لها. - الدالة
urllib.parse.unquote_plus(): هذه الدالة مشابهة للدالةunquote() ولكنّها تستبدل علامات+بالمسافات البيضاء، وهذا هو المطلوب عند إلغاء الاقتباس من قيم نماذج HTML. - الدالة
urllib.parse.unquote_to_bytes(): تحول الدالة الحروف المهرّبة بالصيغة %xxإلى القيمة الثمانية المفردة المقابلة لها، وتعيد كائنbytes. - الدالة
urllib.parse.urlencode(): تحوّل الدالة كائن ربط mapping object أو تسلسلًا من صفوف ذات عنصرين، والتي قد تحتوي على كائناتstrأوbytesإلى سلسلة نصية مرمّزة بالنسبة المئوية ضمن الترميز ASCII.