प्रलेखन के अनुसार request.METAएक "मानक पायथन शब्दकोश है जिसमें सभी उपलब्ध HTTP हेडर हैं"। यदि आप सभी शीर्षकों को प्राप्त करना चाहते हैं, तो आप केवल शब्दकोश के माध्यम से पुनरावृति कर सकते हैं।
ऐसा करने के लिए आपके कोड का कौन सा भाग आपकी सटीक आवश्यकता पर निर्भर करता है। कहीं भी पहुंचना requestचाहिए।
अपडेट करें
मुझे इसे मिडिलवेयर क्लास में एक्सेस करने की आवश्यकता है लेकिन जब मैं इस पर पुनरावृति करता हूं, तो मुझे HTTP हेडर के अलावा बहुत सारे मान मिलते हैं।
प्रलेखन से:
के अपवाद के साथ CONTENT_LENGTHऔर CONTENT_TYPE, जैसा कि ऊपर दिया गया है, HTTPअनुरोध में किसी भी हेडर को METAसभी वर्णों को अपरकेस में परिवर्तित करके, किसी भी हाइफ़न को अंडरस्कोर के साथ बदलकर और उपसर्ग को नाम में जोड़ दिया जाता हैHTTP_ ।
(महत्व दिया)
HTTPहेडर को अकेले लाने के लिए , केवल उपसर्गों के आधार पर फ़िल्टर करें HTTP_।
अपडेट २
क्या आप मुझे दिखा सकते हैं कि मैं अनुरोध से सभी कुंजी को फ़िल्टर करके हेडर का एक शब्दकोश कैसे बना सकता हूं। एमटीए चर जो एक HTTP_ भाग से शुरू होता है और प्रमुख HTTP_ भाग को बाहर निकालता है।
ज़रूर। यहाँ यह करने का एक तरीका है।
import re
regex = re.compile('^HTTP_')
dict((regex.sub('', header), value) for (header, value)
in request.META.items() if header.startswith('HTTP_'))