В настоящее время я работаю со встроенной базой данных Google App Engine. Кажется, что когда я запускаю put()
для вставки кортежа в базу данных, функция возвращается, даже если кортеж еще не был полностью вставлен. Вот код:
new_user = Users(username=username_input, hashed_password=get_hashed_password(username_input, password))
new_user.put()
existing_user = None
while not existing_user:
print "existing_user still not in DB"
#tries to get the user that was put into the DB
existing_user = db.GqlQuery("SELECT * FROM Users WHERE username=:username_input", username_input=username_input).get()
print "existing_user in DB"
Когда я запускаю этот код, я получаю следующий вывод:
existing_user still not in DB
existing_user still not in DB
existing_user still not in DB
existing_user still not in DB
existing_user still not in DB
existing_user still not in DB
existing_user still not in DB
existing_user still not in DB
existing_user in DB
Почему это так? Разве put()
не следует заканчивать размещение кортежа в БД перед возвратом?