ตามเอกสารประกอบ request.META
คือ "พจนานุกรม Python มาตรฐานที่มีส่วนหัว HTTP ที่มีทั้งหมด" หากคุณต้องการรับส่วนหัวทั้งหมดคุณสามารถทำซ้ำได้จากพจนานุกรม
ส่วนใดของโค้ดของคุณในการทำสิ่งนี้ขึ้นอยู่กับความต้องการของคุณ ทุกที่ที่สามารถเข้าถึงได้request
ควรทำ
อัปเดต
ฉันต้องการเข้าถึงมันในคลาสมิดเดิลแวร์ แต่เมื่อฉันทำซ้ำฉันจะได้รับค่ามากมายนอกเหนือจากส่วนหัว HTTP
จากเอกสารประกอบ:
มีข้อยกเว้นของCONTENT_LENGTH
และCONTENT_TYPE
เป็นดังกล่าวข้างต้นใด ๆHTTP
ส่วนหัวในคำขอจะถูกแปลงเป็นMETA
คีย์โดยการแปลงตัวอักษรทั้งหมดเป็นตัวพิมพ์ใหญ่แทนยัติภังค์ใด ๆ กับขีดและเพิ่มHTTP_
คำนำหน้าชื่อ
(เน้นเพิ่ม)
หากต้องการรับHTTP
ส่วนหัวเพียงอย่างเดียวให้กรองตามคีย์ที่HTTP_
ขึ้นต้นด้วย
อัปเดต 2
คุณช่วยแสดงให้ฉันเห็นได้ไหมว่าฉันจะสร้างพจนานุกรมของส่วนหัวได้อย่างไรโดยการกรองคีย์ทั้งหมดออกจากคำขอตัวแปร META ซึ่งขึ้นต้นด้วย HTTP_ และดึงส่วน HTTP_ ชั้นนำออก
แน่นอน นี่คือวิธีหนึ่งที่จะทำได้
import re
regex = re.compile('^HTTP_')
dict((regex.sub('', header), value) for (header, value)
in request.META.items() if header.startswith('HTTP_'))