الفرق بين المراجعتين لصفحة: «Python/urllib/parse/quote plus»

من موسوعة حسوب
< Python‏ | urllib‏ | parse
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote()‎‎</code> في بايثون}}</noinclude> هذه الدالة مشابهة للدالة quote()‎...'
 
لا ملخص تعديل
 
(1 مراجعات متوسطة بواسطة نفس المستخدم غير معروضة)
سطر 1: سطر 1:
<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote()‎‎</code> في بايثون}}</noinclude>
<noinclude>{{DISPLAYTITLE:الدالة <code>urllib.parse.quote_plus()‎‎</code> في بايثون}}</noinclude>


هذه الدالة مشابهة للدالة quote()‎ ولكنّها تستبدل المسافات الفارغة بعلامات +، وهذا هو المطلوب لاقتباس قيم نماذج HTML عند بناء سلاسل الاستعلام النصية التي ستُستخدم في عنوان URL. تُهرّب علامات + في السلسلة النصية الأصلية إلا إذا أدرجت كقيمة للمعامل safe. لا يأخذ المعامل safe القيمة الافتراضية '/' كما هو الحال مع الدالة quote()‎.
هذه الدالة مشابهة للدالة <code>[[Python/urllib/parse/quote|quote()]]</code>‎ ولكنّها تستبدل المسافات الفارغة بعلامات <code>+</code>، وهذا هو المطلوب لاقتباس قيم [[HTML/form|نماذج HTML]] عند بناء سلاسل الاستعلام النصية التي ستُستخدم في عنوان URL.  


== البنية العامة ==
== البنية العامة ==
سطر 13: سطر 13:
=== <code>safe</code> ===
=== <code>safe</code> ===


يحدّد هذا المعامل محارف ASCII الإضافية التي يجب على الدالة أن لا تحيطها بعلامات اقتباس. يحمل هذا المعامل القيمة الافتراضية <code>'/'</code>.
يحدّد هذا المعامل محارف 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:43، 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.

مصادر