प्रलेखन के अनुसार 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_'))