Привет! Я разрабатываю приложение в python3 с использованием фрейма flask, который будет выполняться на стандартном appengine, который использует облачное хранилище данных для персистентности
Я хочу выполнить транзакции
поэтому я попробовал следующее i
@ndb.transactional()
def update_user(req_data):
print("running for req")
print(req_data)
query = TestUser.query(ndb.AND(TestUser.age=="1"))
with client.context():
result = query.get()
if result.name == "the one":
print("not writing")
return
else:
print(result.name+ " is not equal to 'the one'")
print(result.name)
result.name = req_data["name"]
result.put()
print("transaction ended")
@app.route('/test_req',methods=['POST'])
def test_req_handler():
req_data = request.get_json()
update_user(req_data)
print(req_data)
return "ok"
В локальной среде разработки, когда я нажимаю на обработчик / test_req, я получаю следующую ошибку
\lib\site-packages\google\cloud\ndb\context.py", line 72, in get_context
raise exceptions.ContextError()
google.cloud.ndb.exceptions.ContextError: No current context. NDB calls must be made in context established by google.cloud.ndb.Client.context.
при удалении @ndb. сущности декоратора транзакции () обновляются, и ошибки нет