MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

колба 0.10 mongo работи извън контекста на приложението

За да разберете тази грешка, трябва да разберете контекста на приложението .

Напълно възможно е някой да напише множество Flask приложения, които обработват техните заявки в един и същи процес. Документите дават следния пример...

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

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

Имайте предвид, че в този случай приложението за интерфейс може да използва различни настройки на Mongo, но да използва абсолютно същия обект на разширение на Mongo. Поради тази причина Flask не може да приеме кое е "текущото" приложение, когато стартирате скрипт. Следователно неща като url_for() , или много от методите на разширения като разширението MongoDB, трябва да знаят кое приложение е „текущото“, преди да направят нещо.

Следователно, всеки път, когато се опитвате да използвате Flask или функции за разширение, за да правите нещо различно от настройване на самите приложения (с конфигурационни стойности и т.н.), трябва изрично да кажете на Flask кое е текущото приложение, което да присвоите на контекст на приложението .

Документите дават начин, по който можете да направите това...

# 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() линия. В рамките на този оператор всичките ви обаждания (като тези към вашето разширение Mongo) трябва да работят. Имайте предвид, че не е необходимо да правите нищо от това в изглед, защото Flask автоматично ще направи всичко това като част от обработката на заявка.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Вмъкнете DBObject в MongoDB с помощта на Spring Data

  2. Mongodb 2.4 2dsphere заявки много бавни (използвайки $geoIntersects)?

  3. PHP не може да намери драйвер за MongoDB

  4. Мързеливо зареждане/превъртане на повече данни в Mongoose/Nodejs

  5. Правило на MongoDB за изтриване на ред, ако определена колона съдържа конкретна стойност