【问题标题】:How to connect to a heroku postgres databases using databases library in fastapi?如何使用 fastapi 中的数据库库连接到 heroku postgres 数据库?
【发布时间】:2021-04-30 11:31:51
【问题描述】:

我正在尝试使用fastapi 中的databases python 库连接到 Heroku Postgres 数据库。

以下是我的代码

import databases
import sqlalchemy
from fastapi import FastAPI
from pydantic import BaseModel

DATABASE_URL = "postgresql://user:password@postgresserver/db"

database = databases.Database(DATABASE_URL,ssl = True)

engine = create_engine(SQLALCHEMY_DATABASE_URL,  pool_pre_ping=True,)
Base = declarative_base()
Base.metadata.create_all(database.engine)

...


运行时出现以下错误:

self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self signed certificate (_ssl.c:1108)

我想使用databases 来使用fastapi 中的异步功能。请帮忙

【问题讨论】:

    标签: python database postgresql python-asyncio fastapi


    【解决方案1】:

    我不熟悉 Heroku 平台,所以我不知道他们是否只是简单地使用自签名证书进行数据库连接,但如果您确定您信任此证书,您可以创建一个新的 SSL 上下文并禁用验证:

    import ssl
    
    
    ctx = ssl.create_default_context()
    ctx.check_hostname = False
    ctx.verify_mode = ssl.CERT_NONE
    
    database = databases.Database(DATABASE_URL, ssl=ctx)
    ...
    

    【讨论】:

      猜你喜欢
      • 2014-05-28
      • 1970-01-01
      • 2016-01-27
      • 2017-10-07
      • 2021-06-21
      • 2016-08-12
      • 2013-04-21
      • 2021-07-10
      • 2021-02-06
      相关资源
      最近更新 更多