如果前一个服务器抛出错误,如何让Python尝试其他服务器

时间:2019-09-11 07:41:28

标签: python sqlalchemy flask-sqlalchemy

在我的配置文件中,数据库uri看起来像这样:SQLALCHEMY_URI = f"postgresql://{USER}:{PASSWORD}@{SERVER}/{NAME}"

我想为SERVER使用两个不同的值,具体取决于部署代码的位置-一个默认值,以及另一个值,以防前一个失败。有可能这样做吗?

1 个答案:

答案 0 :(得分:1)

例如,如果您使用的是sqlalchemy软件包,则代码应如下所示:

import sqlalchemy

try:    
    SQLALCHEMY_URI = f"postgresql://{USER}:{PASSWORD}@{SERVER}/{NAME}"
    engine = sqlalchemy.create_engine(SQLALCHEMY_URI)
except sqlalchemy.errors.TimeoutError:
    print('Connection error - using another server')   # or some log, alert, whatever you like
    SQLALCHEMY_URI = f"postgresql://{USER}:{PASSWORD}@{ANOTHER_SERVER}/{NAME}"
    engine = sqlalchemy.create_engine(SQLALCHEMY_URI)