الصنف wsgiref.headers.Headers
في بايثون
تدعم كائنات Headers
العمليات الخاصة بالقواميس مثل __getitem__()
و get()
و __setitem__()
و setdefault()
و __delitem__()
و __contains__()
.
يكون المفتاح في كل هذه العمليات هو اسم الترويسة (ليست حساسة لحالة الأحرف) وتكون القيمة هي أول قيمة مرتبطة باسم الترويسة ذاك.
يؤدي تعيين ترويسة إلى حذف أي قيمة موجودة في تلك الترويسة، ثم تضاف القمية الجديدة إلى نهاية قائمة الترويسات. تضاف الترويسات الجديدة إلى نهاية القائمة وبذلك يتم المحافظة على ترتيب الترويسات الموجودة أصلًا.
تختلف كائنات Headers
عن القواميس في أنّها لا تطلق خطأً عند محاولة جلب أو حذف مفتاح غير موجود في قائمة الترويسات. تؤدي محاولة جلب ترويسة غير موجودة إلى إعادة القيمة None
، أما عند محاولة حذف ترويسة غير موجودة فلن يحدث شيءٌ إطلاقًا.
تدعم كائنات Headers
كذلك التوابع keys()
و values()
و items()
. ويمكن للقوائم المعادة من استدعاء التابعين keys()
و items()
أن تتضمّن المفتاح عينه أكثر من مرة؛ وذلك في حال وجود ترويسات ذات قيم متعددة.
إن طول كائنات Headers
(يمكن الحصول عليه باستخدام الدالة len()
) مساوٍ لعدد العناصر الموجودة فيه (يمكن الحصول على عدد العناصر باستخدام التابع items()
)، وهو مساوٍ كذلك لعدد العناصر في قائمة الترويسات. يعيد التابع items()
في الواقع نسخة من قائمة الترويسات فقط.
يؤدي استدعاء الدالة bytes()
على كائنات Header
إلى إعادة سلسلة بايتات نصية bytestring
منسّقة تكون ملائمة لنقلها كترويسة استجابة HTTP. توضع كل ترويسة مع قيمتها في سطر مستقل، وتفصل الترويسات عن القيم بنقطتين رأسيتين أو مسافة بيضاء. يُختم كل سطر بمحرف العودة إلى بداية السطر Carriage return و محرف السطر الجديد line feed، وتُختم سلسلة البايتات النصية بسطر فارغ.
البنية العامة
wsgiref.headers.Headers([headers])
المعاملات
headers
القيمة الافتراضية لهذا المعامل هي قائمة فارغة.
ملاحظة: headers
معامل اختياري في الإصدار 3.5 من بايثون.
توابع الصنف Headers
التابع get_all()
يعيد التابع قائمة بجميع القيم المندرجة ضمن الترويسة المعطاة.
التابع add_header()
يضيف التابع ترويسة (يمكن أن تكون متعددة القيم) مع معاملات MIME اختيارية تُحدّد بواسطة المعاملات المفتاحية.