我有兩個通過以下命令運行的 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我已經在我的 postgres (psql) 容器中創建了必要的用戶、數據庫和表。我正在嘗試運行 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)我知道一個問題是我需要設置 DATABASE_URL env - 但我不確定該值應該是多少
2 回答

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