init_app से एक्सटेंशन आरंभ करें
ऐप बनने तक एक्सटेंशन का बंधन टालें
init_app से एक्सटेंशन आरंभ करें, CoddyKit पर Flask Academy का एक निःशुल्क पाठ है। यह 4 में से 3वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह Flask Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। Flask Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
एक्सटेंशन की दुविधा
SQLAlchemy जैसे एक्सटेंशन पहले ऐप को तुरंत अपना लेते थे। फ़ैक्टरी के अंदर यह काम नहीं करता, क्योंकि आयात के समय app अभी मौजूद नहीं होता। 🤔
ऐप के बिना बनाएँ
इसका समाधान दो चरणों में है। पहले, मॉड्यूल स्तर पर एक्सटेंशन ऑब्जेक्ट बनाएँ और उसमें no app पास करें। यह अभी अनबाउंड रहता है।
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy() # no app yetबाद में बाँधें
दूसरे, ऐप बन जाने के बाद फ़ैक्टरी के अंदर init_app कॉल करें। इससे एक्सटेंशन उसी विशेष इंस्टेंस से बँध जाता है।
def create_app():
app = Flask(__name__)
db.init_app(app)
return appदो चरण क्यों
एक्सटेंशन ऑब्जेक्ट को वैश्विक ऑब्जेक्ट के रूप में imported anywhere किया जा सकता है, जबकि वास्तविक बाइंडिंग तब तक रुकती है, जब तक फ़ैक्टरी कोई कॉन्फ़िगरेशन चुन नहीं लेती। दोनों के लाभ मिल जाते हैं।
हर जगह आयात योग्य
क्योंकि db मॉड्यूल स्तर पर रहता है, आपके मॉडल और दृश्य ऐप को छुए बिना इसे स्वतंत्र रूप से आयात कर सकते हैं और चक्रीय आयात से बच सकते हैं।
from app.extensions import dbसुव्यवस्थित extensions मॉड्यूल
एक सामान्य तरीके में सभी अनबाउंड एक्सटेंशन एक ही extensions.py फ़ाइल में रखे जाते हैं। फिर फ़ैक्टरी हर एक को आयात करके आरंभ करती है।
db = SQLAlchemy()
migrate = Migrate()
login = LoginManager()एक साथ कई आरंभ करें
create_app के अंदर आप हर एक्सटेंशन पर बस init_app कॉल करते हैं और सभी को वही नया ऐप पास करते हैं।
db.init_app(app)
migrate.init_app(app, db)
login.init_app(app)प्रति-ऐप बाइंडिंग
क्योंकि बाइंडिंग फ़ैक्टरी में होती है, दो अलग-अलग ऐप एक ही एक्सटेंशन क्लास पर स्वतंत्र रूप से init_app कर सकते हैं। परीक्षणों के लिए यह बहुत उपयोगी है।
कॉन्फ़िगरेशन आरंभ करते समय पढ़ी जाती है
एक्सटेंशन init_app के दौरान डेटाबेस यूआरआई जैसी सेटिंग पढ़ते हैं, इसलिए उन्हें बाँधने से पहले वे कॉन्फ़िगरेशन मान सेट कर दें।
app.config["SQLALCHEMY_DATABASE_URI"] = uri
db.init_app(app)कॉन्टेक्स्ट के भीतर उपयोग करें
init_app के बाद एक्सटेंशन को वास्तव में क्वेरी चलाने के लिए app context चाहिए, क्योंकि उसे पता होना चाहिए कि वह किस ऐप से बात कर रहा है।
with app.app_context():
db.create_all()स्वर्णिम नियम
आयात के समय एक्सटेंशन को अनबाउंड बनाएँ, फिर फ़ैक्टरी में init_app कॉल करें। यह एक विभाजन पूरे पैटर्न को संभव बनाता है। 🔑
त्वरित जाँच
ऐप के बिना एक्सटेंशन ऑब्जेक्ट क्यों बनाएँ और फिर init_app कॉल क्यों करें?
पुनरावलोकन
आपने दो-चरणीय तरीका सीखा: एक्सटेंशन को अनबाउंड बनाएँ, फिर फ़ैक्टरी में init_app कॉल करें। आयात योग्य वैश्विक ऑब्जेक्ट और प्रति-ऐप बाइंडिंग मिलती है, वह भी चक्रीय आयात के बिना। 🌟
एआई शिक्षक के साथ Python सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 30
- पाठ
- 120
अक्सर पूछे जाने वाले प्रश्न
क्या “init_app से एक्सटेंशन आरंभ करें” पाठ निःशुल्क है?
हाँ—“init_app से एक्सटेंशन आरंभ करें” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और Flask Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। Flask Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“init_app से एक्सटेंशन आरंभ करें” में मैं क्या सीखूँगा?
ऐप बनने तक एक्सटेंशन का बंधन टालें आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ Flask Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या Flask Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर Flask Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 3वाँ पाठ है।
“init_app से एक्सटेंशन आरंभ करें” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस Flask Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर Flask Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- वैश्विक app ऑब्जेक्ट की समस्याएँ
- create_app फ़ंक्शन लिखें
- init_app से एक्सटेंशन आरंभ करें
- फ़ैक्टरी में Blueprint पंजीकृत करें