首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQLAlchemy OperationalError未取

SQLAlchemy OperationalError未取
EN

Stack Overflow用户
提问于 2020-08-06 12:06:09
回答 1查看 21关注 0票数 0

因为我们需要使用不同的urls来访问数据库以供内部和外部使用,所以我实现了以下代码。问题是,引发的OperationalError不是由try/ not子句获取的。为什么不取这个错误?

代码语言:javascript
复制
try:
    return create_engine('postgresql://{user}:{password}@{host}:{port}/{dbname}'.format(
            dbname="db_name",
            user="username",
            host="internal_url.com",
            port=1234,
            password="PassWord"))
except exc.OperationalError:
    return create_engine('postgresql://{user}:{password}@{host}:{port}/{dbname}'.format(
            dbname="db_name",
            user="username",
            host="external_url.com",
            port=1234,
            password="PassWord"))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-06 14:48:52

create_engine只创建实例,但不建立连接。您需要连接到数据库,以验证连接是否有效。就像这样

代码语言:javascript
复制
try:
    engine = create_engine('postgresql://{user}:{password}@{host}:{port}/{dbname}'.format(
            dbname="db_name",
            user="username",
            host="internal_url.com",
            port=1234,
            password="PassWord"))
    engine.connect()
    return engine
except sqlalchemy.exc.OperationalError:
    return create_engine('postgresql://{user}:{password}@{host}:{port}/{dbname}'.format(
            dbname="db_name",
            user="username",
            host="external_url.com",
            port=1234,
            password="PassWord"))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63283246

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档