我正在尝试将烧瓶应用程序连接到Heroku数据库。我尝试了一百万次思考并获得了相同的错误消息:
我从终端登录到应用数据库,并收到以下消息:
您以用户“ ikkcwdbfbqzfiw”连接到数据库“ dclhb9ntogjjr” 在主机“ ec2-54-195-247-108.eu-west-1.compute.amazonaws.com”(地址 端口“ 5432”上的“ 54.195.247.108”)。 SSL连接(协议:TLSv1.2, 密码:ECDHE-RSA-AES256-GCM-SHA384,位:256,压缩:关闭)
我试图设置变量DATABASE_URL =“ ??????”,但是我不确定如何从Heroku获取数据库URL。 如果您有任何解决方法的想法,请告诉我。
答案 0 :(得分:1)
首先请确保您正确设置了Heroku数据库。
接下来,您不应设置DATABASE_URL的值
DATABASE_URL是环境变量。要访问它,您需要此代码
import os
database_url=os.environ.get('DATABASE_URL')
答案 1 :(得分:0)
即使添加后也会发生同样的情况。
import os
from flask import Flask, session
from flask_session import Session
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
app = Flask(__name__)
# Check for environment variable
if not os.getenv("DATABASE_URL"):
raise RuntimeError("DATABASE_URL is not set")
# Configure session to use filesystem
app.config["SESSION_PERMANENT"] = False
app.config["SESSION_TYPE"] = "filesystem"
database_url=os.environ.get('DATABASE_URL')
# Set up database
engine = create_engine(os.getenv("DATABASE_URL"))
db = scoped_session(sessionmaker(bind=engine))
database_url=os.environ.get('DATABASE_URL')
@app.route("/")
def index():
return "Project 1: TODO"