Flask Academy · पाठ

स्क्रिप्ट और शेल में संदर्भ पुश करें

app_context के साथ अनुरोध के बाहर कोड चलाएँ

पाठ 4, कुल 4 में से13 चरण

स्क्रिप्ट और शेल में संदर्भ पुश करें, CoddyKit पर Flask Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Flask Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Flask Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

वेब के बाहर

कभी-कभी आप Flask कोड बिना अनुरोध के चलाते हैं, जैसे डेटाबेस में शुरुआती डेटा भरने वाली script। वहाँ कोई कॉन्टेक्स्ट नहीं होता, इसलिए सामान्य प्रॉक्सी विफल हो जाती हैं।

संकेत देने वाली त्रुटि

ऐसा कोड चलाने पर Flask RuntimeError: working outside of application context उत्पन्न करता है। इसका अर्थ है कि कोई ऐप कॉन्टेक्स्ट सक्रिय नहीं है।

इसे स्वयं पुश करें

app.app_context() से एक कॉन्टेक्स्ट पुश करके इसे ठीक करें। अपने कोड को with ब्लॉक में रखें और current_app फिर से काम करने लगेगा।

with app.app_context():
    print(current_app.name)

with ब्लॉक क्या करता है

with ब्लॉक में प्रवेश करने पर कॉन्टेक्स्ट पुश होता है और उससे बाहर निकलने पर पॉप हो जाता है। आपको कभी हाथ से सफ़ाई करने की आवश्यकता नहीं पड़ती।

अब एक्सटेंशन काम करते हैं

ब्लॉक के भीतर ऐप से बँधे एक्सटेंशन सामान्य रूप से काम करते हैं। आप db.create_all() चला सकते हैं या साधारण स्क्रिप्ट से मॉडल पर क्वेरी कर सकते हैं।

with app.app_context():
    db.create_all()

क्या नकली अनुरोध चाहिए?

अनुरोध पढ़ने वाले कोड को चलाने के लिए, ऐप संदर्भ के बजाय test_request_context के साथ एक परीक्षण अनुरोध संदर्भ सक्रिय करें।

with app.test_request_context("/hello"):
    print(request.path)

Flask शेल

flask शेल कमांड ऐसा Python शेल खोलता है जिसमें ऐप संदर्भ पहले से सक्रिय होता है, इसलिए आप अपने ऐप को इंटरैक्टिव तरीके से परख सकते हैं।

flask shell

CLI कमांड भी

आपके द्वारा पंजीकृत कस्टम flask कमांड भी अपने-आप ऐप संदर्भ के भीतर चलते हैं, इसलिए seed और व्यवस्थापक स्क्रिप्ट सीधे काम करती हैं।

@app.cli.command()
def seed():
    db.create_all()

सही संदर्भ चुनें

ज़रूरत के अनुसार चुनें: केवल ऐप या डेटाबेस पर काम करते समय app_context का उपयोग करें, और जब आपका कोड अनुरोध का डेटा पढ़े तो अनुरोध संदर्भ का उपयोग करें।

इसे सीमित दायरे में रखें

संदर्भों को पूरी स्क्रिप्ट के लिए नहीं, बल्कि एक छोटे with ब्लॉक में सक्रिय करें। छोटा दायरा कोड को अधिक स्पष्ट बनाता है और संसाधनों की समाप्ति को अनुमानित रखता है।

यह क्यों महत्वपूर्ण है

संदर्भ सक्रिय करने से आप ऐप के तर्क का उपयोग प्रवासन, क्रॉन कार्यों और परीक्षणों में भी कर सकते हैं, केवल लाइव वेब अनुरोधों के भीतर ही नहीं।

त्वरित जाँच

आइए संदर्भ त्रुटि का समाधान पक्का कर लें।

पुनरावलोकन

अनुरोध नहीं है? एक सक्रिय करें। ऐप और डेटाबेस के काम के लिए app_context, अनुरोध डेटा के लिए test_request_context का उपयोग करें, और flask शेल को यह काम अपने लिए संभालने दें। 🎉

शुरुआत निःशुल्क

एआई शिक्षक के साथ Python सीखें — निःशुल्क

अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।

पाठ्यक्रम
30
पाठ
120

अक्सर पूछे जाने वाले प्रश्न

क्या “स्क्रिप्ट और शेल में संदर्भ पुश करें” पाठ निःशुल्क है?

हाँ—“स्क्रिप्ट और शेल में संदर्भ पुश करें” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Flask Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Flask Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।

“स्क्रिप्ट और शेल में संदर्भ पुश करें” में मैं क्या सीखूँगा?

app_context के साथ अनुरोध के बाहर कोड चलाएँ आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Flask Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।

क्या Flask Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?

पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Flask Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।

“स्क्रिप्ट और शेल में संदर्भ पुश करें” पाठ पूरा करने में कितना समय लगता है?

CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।

क्या मैं इस Flask Academy पाठ में कोड लिख और चला सकता हूँ?

हाँ। हर Flask Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।

इस पाठ्यक्रम के सभी पाठ

  1. ऐप संदर्भ बनाम अनुरोध संदर्भ
  2. current_app और g ऑब्जेक्ट
  3. संदर्भ लोकल और थ्रेड सुरक्षा
  4. स्क्रिप्ट और शेल में संदर्भ पुश करें
← Flask Academy पर वापस जाएँ