我有一个端点从我的数据库中删除一个对象.我用以下代码删除它:
my_object = Object.query.get(id)
db.session.delete(my_object)
db.session.commit()
return json.dumps({'success': True}
Run Code Online (Sandbox Code Playgroud)
我有一个API测试来测试我创建对象的端点,然后使用端点将其删除.我试图断言删除后发生它不在数据库中.
my_object = MyObject()
db.session.add(my_object)
db.session.commit()
response = requests.delete('{}/my-object/{}'.format(
os.environ.get('MY_URL'),
my_object.id
))
self.assertTrue(response.json()['success']) // this passes
self.assertEqual(200, response.status_code) // this passes
result = db.session.query(MyObject).get(my_object.id)
print(result.id) // prints the id of the job even though it is deleted from the database
Run Code Online (Sandbox Code Playgroud)
我认为这与一些SQLAlchemy会话缓存有关.我试过了db.session.flush(),但db.session.expire_all()没有用.该对象实际上正在从数据库中删除.所以我希望查询结果是None.
我在文档中看到了这一点,但没有完全包裹我的脑袋.何时提交和关闭会话
谢谢你的帮助.