क्या कोई भी इस पंक्ति को समझा सकता है?
g = LocalProxy (लैम्ब्डा: _request_ctx_stack.top G)
फ्लास्क से कोड
स्थानीय व्यापार से स्थानीय सेक्टर, स्थानीयप्रोक्सी # संदर्भ स्थानीय _request_ctx_stack = LocalStack () current_app = LocalProxy (लैम्ब्डा: _request_ctx_stack.top। ऐप) अनुरोध = स्थानीयप्रोक्सी (लैम्ब्डा: _request_ctx_stack.top.request) session = LocalProxy (लैम्ब्डा: _request_ctx_stack.top.session) g = स्थानीयप्रोक्सी (लैम्ब्डा: _request_ctx_stack.top.g)
कोड स्थानीय का यहाँ है:
LocalStack और LocalProxy के लिए मदद कर सकता है, साथ ही साथ की कुछ बुनियादी समझ।
ऐसा लगता है कि क्या हो रहा है कि एक वैश्विक (लेकिन खाली) स्टैक _request_ctx_stack
बनाया गया है यह सभी धागे के लिए उपलब्ध है। कुछ डब्लूएसजीआई-स्टाइल ऑब्जेक्ट्स ( current_app
, अनुरोध
, सत्र
, और g
) शीर्ष आइटम का उपयोग करने के लिए सेट हैं वैश्विक ढेर में।
कुछ बिंदु पर, एक या अधिक WSGI अनुप्रयोगों को वैश्विक स्टैक पर धकेल दिया जाता है। फिर, जब, उदाहरण के लिए, current_app
को रनटाइम पर उपयोग किया जाता है, तो वर्तमान शीर्ष अनुप्रयोग उपयोग किया जाता है। यदि स्टैक कभी आरम्भ नहीं किया जाता है, तो शीर्ष पर कोई भी नहीं लौटाएगा और आपको AttributeError जैसे कोई अपवाद मिलेगा: 'NoneType' ऑब्जेक्ट में कोई विशेषता 'ऐप'
नहीं है।
Comments
Post a Comment