MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

फ्लास्क 0.10 मोंगो आवेदन संदर्भ के बाहर काम कर रहा है

इस त्रुटि को समझने के लिए, आपको एप्लिकेशन संदर्भ को समझना होगा ।

किसी के लिए कई फ्लास्क एप्लिकेशन लिखना पूरी तरह से संभव है जो सभी एक ही प्रक्रिया में अपने अनुरोधों को संभालते हैं। दस्तावेज़ निम्न उदाहरण देते हैं...

from werkzeug.wsgi import DispatcherMiddleware
from frontend_app import application as frontend
from backend_app import application as backend

application = DispatcherMiddleware(frontend, {
    '/backend':     backend
})

ध्यान रखें कि इस मामले में, फ्रंटएंड ऐप विभिन्न मोंगो सेटअप का उपयोग कर सकता है, लेकिन ठीक उसी मोंगो एक्सटेंशन ऑब्जेक्ट का उपयोग करें। इस कारण से, फ्लास्क यह नहीं मान सकता कि स्क्रिप्ट चलाते समय "वर्तमान" ऐप कौन सा है। इसलिए, url_for() . जैसी चीज़ें , या MongoDB एक्सटेंशन जैसे एक्सटेंशन के कई तरीकों को कुछ भी करने से पहले यह जानना आवश्यक है कि कौन सा एप्लिकेशन "वर्तमान" है।

इसलिए, जब भी आप एप्लिकेशन को स्वयं सेट करने के अलावा कुछ भी करने के लिए फ्लास्क या एक्सटेंशन फ़ंक्शंस का उपयोग करने का प्रयास कर रहे हैं (कॉन्फ़िगरेशन मानों आदि के साथ), तो आपको फ्लास्क को स्पष्ट रूप से बताना होगा कि एप्लिकेशन संदर्भ

दस्तावेज़ एक ऐसा तरीका देते हैं जिससे आप यह कर सकते हैं..

# Be careful about recursive imports here
from . import app
from .extention import mongo

@sched.interval_schedule(minutes=1)
def long_running_queries():
    with app.app_context():
        mongo.db.command("aggregate", "collection", pipeline = "some query" )

तो, आपको ऐप ऑब्जेक्ट स्वयं बनाना होगा, फिर with app.app_context() के साथ उपयोग करें रेखा। उसके भीतर कथन के साथ, आपके सभी कॉल (जैसे कि आपके मोंगो एक्सटेंशन के लिए) काम करना चाहिए। ध्यान दें कि आपको इसमें से कुछ भी करने की आवश्यकता नहीं है क्योंकि फ्लास्क स्वचालित रूप से यह सब एक अनुरोध को संभालने के हिस्से के रूप में करेगा।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB में लेनदेन समर्थन

  2. कई भाषाओं का उपयोग करके मोंगोडब पाठ खोज

  3. MongoDB में चेंजस्ट्रीम और टेलेबल कर्सर में क्या अंतर है

  4. वेबस्टॉर्म (मैक) से मोंगोड चलाने का कोई तरीका है

  5. डेटाबेस बनाम डेटाबेस के रूप में S3 का उपयोग करना (जैसे MongoDB)