Python / SqlAlchemy-如何在连接字符串中尝试多个主机名?

问题描述

我正在尝试使用sqlAlchemy与我们的HANA数据库建立连接。我们有3个不同的主机名(主机名1,主机名2和主机名3)。如果hostname1连接失败,那么我想尝试hostname2,如果失败,那么尝试hostname3。

如果没有嵌入看起来很丑的try和except子句,我无法找出最干净的方法

有什么建议吗?

谢谢!

这是我尝试使用for循环的示例:

 try:
        engine = create_engine('hana://{user}:{password}@{host_name}:{port}/db_name'.format(
            user=request.json['username'],password=base64.b64decode(bytes(request.json['password'],encoding='utf-8')).decode('utf-8'),host_name=allowed_host_names[0],port=port,connect_args={
                'connect_timeout': 60
            }
        )
        )

        conn = engine.connect()
        conn.close()

    except:
        try:
            engine = create_engine('hana://{user}:{password}@{host_name}:{port}/db_name'.format(
                user=request.json['username'],host_name=allowed_host_names[1],connect_args={
                    'connect_timeout': 60
                }
            )
            )
            conn = engine.connect()
            conn.close()
        except:
            try:
                engine = create_engine('hana://{user}:{password}@{host_name}:{port}/db_name'.format(
                    user=request.json['username'],connect_args={
                        'connect_timeout': 60
                    }
                )
                )
                conn = engine.connect()
                conn.close()
                
            except Exception as e:

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)