Получить информацию о предмете из базы данных в pre-put callback в канун - PullRequest
0 голосов
/ 02 марта 2020

У меня есть элементы с subId и некоторыми другими полями, хранящимися в mongoDB. Перед отправкой запроса PUT я хочу проверить, равен ли subId, отправляемый в заголовке запроса PUT, subId требуемого элемента, который хранится в mongoDB. Итак, я решил использовать pre_put_callback для этой проверки. Теперь я могу получить subId из заголовка запроса в этой функции, но я не знаю, как получить доступ к subId элемента из mongoDB, чей _id предоставлен пользователем в качестве пути запроса в функции pre_put_callback. Есть ли способ получить доступ к subId этого элемента (который хранится в MongoDB) из функции pre_put_callback?

1 Ответ

0 голосов
/ 03 марта 2020

Вы можете получить доступ к элементу базы данных MongoDB из ловушки событий перед запросом, такой как pre_put_callback, используя current_app из flask пакета. Например, для перехвата события pre_PUT можно получить доступ, как показано ниже:

from flask import current_app as app
from eve import Eve

def pre_put_callback(resource, request, lookup):
    resource_db = app.data.driver.db[resource]
    item = resource_db.find_one(lookup)
    print("DB Item: ", item)

app = Eve()
app.on_pre_PUT += pre_put_callback

app.run()
...