【发布时间】:2019-06-07 07:55:32
【问题描述】:
我正在使用 Python 中的 SQLAlchemy 核心,我已经阅读了很多次文档,但仍然需要澄清 engine.execute() 与 connection.execute()。
据我了解,engine.execute() 和connection.execute() 一样,后面跟着connection.close()。
我遵循的教程让我可以在我的代码中使用它:
脚本中的初始设置
try:
engine = db.create_engine("postgres://user:pass@ip/dbname", connect_args={'connect_timeout': 5})
connection = engine.connect()
metadata = db.MetaData()
except exc.OperationalError:
print_error(f":: Could not connect to {db_ip}!")
sys.exit()
然后,我有处理我的数据库访问的函数,例如:
def add_user(a_username):
query = db.insert(table_users).values(username=a_username)
connection.execute(query)
我应该在我的脚本结束之前调用connection.close() 吗?或者它本身就足够有效地处理?在add_user()结束时关闭连接会更好,还是效率低?
如果我确实需要在脚本结束前调用connection.close(),这是否意味着中断脚本会导致我的 Postgres DB 连接挂起?
【问题讨论】:
标签: python database sqlalchemy