我有兩個通過以下命令運(yùn)行的 docker 容器:docker run --name postgres -v "/Users/xxx/Desktop/Coding/DockerMounting":/home/ -e POSTGRES_PASSWORD=xyz -d postgresdocker run -it -v "/Users/xxx/Desktop/Coding/DockerMounting":/home/t -p 5000:5000 --name some-app --link postgres:postgres -d xxx/ubuntu:latest我已經(jīng)在我的 postgres (psql) 容器中創(chuàng)建了必要的用戶、數(shù)據(jù)庫和表。我正在嘗試運(yùn)行 python 腳本:import osfrom sqlalchemy import create_enginefrom sqlalchemy.orm import scoped_session, sessionmakerengine = create_engine(os.getenv("DATABASE_URL"))db = scoped_session(sessionmaker(bind=engine))def main(): flights = db.execute("SELECT origin, destination, duration FROM flights").fetchall() for flight in flights: print(f"{flight.origin} to {flight.destination}, {flight.duration} minutes.")if __name__ == "__main__": main()我收到以下錯誤: File "list.py", line 6, in <module> engine = create_engine(os.getenv("DATABASE_URL")) File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/__init__.py", line 435, in create_engine return strategy.create(*args, **kwargs) File "/usr/local/lib/python3.6/dist-packages/sqlalchemy/engine/strategies.py", line 56, in create plugins = u._instantiate_plugins(kwargs)我知道一個問題是我需要設(shè)置 DATABASE_URL env - 但我不確定該值應(yīng)該是多少
2 回答

縹緲止盈
TA貢獻(xiàn)2041條經(jīng)驗(yàn) 獲得超4個贊
您需要在運(yùn)行 Flask 應(yīng)用程序的同一環(huán)境中指定 DATABASE_URL。
這意味著如果您在 Windows 中從 CMD 運(yùn)行它,則需要在運(yùn)行 Flask 之前將其導(dǎo)出:
setx DATABASE_URL "postgres://<user>:<password>@<host>:<port>/<DBname>"
或者在Linux中:
export DATABASE_URL=postgres://<user>:<password>@<host>:<port>/<DBname>
(端口通常是 5432)
然后運(yùn)行您的應(yīng)用程序。
添加回答
舉報
0/150
提交
取消