#python #flask #sqlalchemy
#python #flask #sqlalchemy
Вопрос:
Здесь при выполнении приведенного ниже кода запись 1 была сохранена в db, и возникла проблема с record2, поскольку мы ожидаем, что role_id является целым числом, но получили строку, так есть ли какой-либо способ, которым я мог бы удалить record1 из db, поскольку конечная точка не выполняется успешно
class First(Resource):
def get(self):
try:
record1 = UserModel(username='xxx',password='yyyy')
record1.save_to_db()
record2 = RoleModel(role_id='aaa')
record2.save_to_db()
except:
db.session.rollback()
finally:
db.session.close()
Комментарии:
1. Откат должен применяться к собранным операциям с начала текущей транзакции. Только вызов commit или flush завершает соответствующую транзакцию. Если здесь что-то пойдет не так, вся транзакция будет отозвана путем вызова rollback . Посмотрите здесь и здесь . Таким образом, вы можете изменить
save_to_db()
функцию так, чтобы объект добавлялся в сеанс, но фиксация опущена в зависимости от переданного логического аргумента.2. Спасибо за информацию, которую она мне помогла, я изменил код в save_to_db(), и это сработало для меня.