如何关闭由sqlalchemy.ext.sqlsoup创建的引擎
我正在使用sqlsoup来进行一个简单的查询。我的问题是,怎么关闭这个引擎呢?谢谢!
import sqlalchemy.ext.sqlsoup as SqlSoup
db = SqlSoup('sqlite:///test.sqlite')
res = db.people.filter_by(id = 1).all()
return res[0]
1 个回答
4
我不太明白你为什么觉得需要这个,不过我还是给你解释一下:
import sqlalchemy.ext.sqlsoup as SqlSoup
import sqlalchemy
engine = sqlalchemy.create_engine('sqlite:///test.sqlite')
db = SqlSoup(engine)
res = db.people.filter_by(id = 1).first()
engine.dispose()
return res
使用 Query.first()
而不是 Query.all()[0]
,把引擎和 SqlSoup 分开创建,然后把那个引擎传给它。你可以在之后处理完后再关闭这个引擎。
要注意的是,当你关闭引擎时,会创建一个新的连接池;数据库并不是永久断开的,只是所有打开的连接会被关闭,而关闭操作本身不会从新的连接池中再建立新的连接。