gpt4 book ai didi

python - 在 python 中连接失败后重试 SQL 连接的正确语法?

转载 作者:行者123 更新时间:2023-12-03 02:36:26 25 4
gpt4 key购买 nike

我有一个在 Azure 应用服务上运行的破折号(flask)应用程序,我在其中询问用户输入,然后他们单击“提交”,我的代码运行 SQL 查询。它几乎一直有效,但有时查询无法连接(通信链路故障)。当我重新启动应用程序服务时,它会再次开始工作。

有没有办法利用 Try & except 子句来尝试重新建立 SQL 连接或其他什么?如果我想尝试实现这种逻辑,我的代码会是什么样子?我正在努力找出为其编写语法的正确方法。

@dash_app.callback(
Output('hidden-dataframe', 'children'),
[Input('submit-button', 'n_clicks')],
[State('company-dropdown', 'value')])
def select_company(n_clicks, value):
if value is None:
raise PreventUpdate
else:
x = value
if n_clicks:
from datetime import datetime, timedelta
start_date = (datetime.today() - timedelta(29)).strftime('%Y-%m-%d')
end_date = datetime.today().strftime('%Y-%m-%d')

cnxn = pyodbc.connect(driver='{OBDC Driver 17 for SQL Server}',host,database,trusted_connection,user,password)
query = f"SELECT data FROM table WHERE ..."

df = pd.read_sql_query(query, cnxn)

return df.to_json(date_format='iso', orient='split')

这是连接失败时收到的错误代码:

enter image description here

最佳答案

要在重新连接时重试一次,请替换

    df = pd.read_sql_query(query, cnxn)

    try:
df = pd.read_sql_query(query, cnxn)
except pyodbc.OperationalError:
cnxn.close()
cnxn = pyodbc.connect(driver='{OBDC Driver 17 for SQL Server}',host,database,trusted_connection,user,password)
df = pd.read_sql_query(query, cnxn)

这在 azure 应用程序服务/ flask 中对我有用。不过,直接使用光标,而不是 pandas,因此要处理的具体错误可能会有所不同。

关于python - 在 python 中连接失败后重试 SQL 连接的正确语法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63045889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com