如何使用 fastapi 中的数据库库连接到 heroku postgres 数据库?
How to connect to a heroku postgres databases using databases library in fastapi?
我正在尝试使用 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
中的异步功能。请帮助
我不熟悉 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)
...
我正在尝试使用 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
中的异步功能。请帮助
我不熟悉 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)
...