我有两个通过以下命令运行的 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
提交
取消