python - SQLAlchemy核心engine.execute()与connection.execute()

标签 python database sqlalchemy

我正在 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 上的连接挂起?

最佳答案

我找到了this post如果您还没有阅读过,这有助于更好地理解 sqlalchemy 中的不同交互范例。

关于何时关闭数据库连接的问题:为每个语句执行创建和关闭连接确实非常低效。但是,您应该确保您的应用程序的全局流中没有连接泄漏。

关于python - SQLAlchemy核心engine.execute()与connection.execute(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54162691/

相关文章:

python - 在 60 个字符后分解长字符串(添加空格)的最短方法?

python - eval()是否比自己分析的好?

ruby-on-rails - Ruby on rails - 参数数量错误(2 为 1)[Rails]

python - 如何使用 SQLAlchemy session 确定一个 PGArray 是否包含在另一个 PGArray 中?

python - 阅读连接查询 Sqlalchemy Jinja

python - 将 LexToken 转换为列表 Python

python - Django:根据预保存信号调整图像大小

database - 我已经为一个网站创建了倒排索引,但是应该把它存储在哪里呢?搜索引擎的数据库?

php - 如何创建语义搜索

python - 使用 Sqlalchemy 计算列中的项目数