मैं फ्लास्क के साथ एक सरल, लेकिन मामूली अनुप्रयोग बनाने की कोशिश नहीं कर रहा हूं और मैं ऐसी स्थिति में चल रहा हूं जो दस्तावेज़ों में अच्छी तरह से समझाया नहीं गया है।फ्लास्क अनुप्रयोगों का ढांचा
मैं चाहूँगा मेरे ऐप विभिन्न मॉड्यूल के बीच विभाजित किया जाना है, लेकिन ऐसा लगता है कि यह मुख्य मॉड्यूल के अलावा कोई अन्य जगह से मुख्य app
वस्तु (या db
flask-sqlalchemy
से) तक पहुँचने के लिए मुश्किल है। ऐसा लगता है कि आपको इसे वैश्विक रूप से इलाज करने का अपना तरीका लिखना है कि सबकुछ तक पहुंच है, जिसके लिए कुछ संदिग्ध कोड और कुछ समय की आवश्यकता है।
app
और db
दोनों स्तर पर बनाए जाते हैं जहां मुख्य एप्लिकेशन तत्काल होता है और प्रत्येक उदाहरण मानता है कि वे शीर्ष स्तर पर उपलब्ध हैं। लेकिन अगर मैं विभिन्न मॉड्यूल हैंडलर को विभिन्न मॉड्यूल में विभाजित करता हूं, तो मैं @app.route
सजावट का उपयोग करने की क्षमता खो देता हूं। मैं app.add_url_rule('/...', some.module...)
के साथ उस पर काम कर सकता हूं, लेकिन फिर, उस फ़ंक्शन को ऐप पास नहीं किया गया है।
db
के साथ वही बात होती है - मुझे नहीं पता कि मुझे इसे g
में चिपकाना चाहिए, या किसी भी तरह app
के माध्यम से इसे सुलभ बनाना चाहिए। ऐसा करने से मॉडलों को एक अलग मॉड्यूल में स्थानांतरित करने में मेरी मदद नहीं होती है - हालांकि मुझे आयात करते समय db
तक कैसे पहुंचाया जा सकता है? सभी उदाहरण फिर से मानते हैं कि यह स्थानीय चर के रूप में उपलब्ध है।
क्या मुझे कुछ स्पष्ट याद आ रही है, या क्या मैं यहां गलत कार्य के लिए फ्लास्क का उपयोग करने की कोशिश कर रहा हूं?
सजावटी बस फ़ंक्शन रैपर हैं। आप एक वर्ग बना सकते हैं जो सभी सर्वर तर्क को समाहित करता है और कक्षा के अंदर 'डीबी' और' ऐप 'चर को स्टोर करता है। – Blender
@ ब्लेंडर ज़रूर, हाथ से इसे हल करने के कई तरीके हैं। मैं वास्तव में यह जानना चाहता हूं कि अगर इससे निपटने का कोई मानक तरीका है और यदि ऐसा लगता है कि यह दस्तावेज़ों से पूरी तरह गायब है, तो रास्ते में और कोई आश्चर्य है। मैं कहीं भी प्रस्तुत किए गए फ्लास्क से कुछ और स्पष्ट समाधान की उम्मीद कर रहा था। – viraptor
आप ब्लूप्रिंट – user956424