为了账号安全,请及时绑定邮箱和手机立即绑定

链接 python 应用程序 docker 和 postgress docker

链接 python 应用程序 docker 和 postgress docker

慕勒3428872 2021-10-26 16:53:58
我有两个通过以下命令运行的 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 回答

?
慕姐8265434

TA贡献1813条经验 获得超2个赞

根据文档DATABASE_URL环境变量应该是这样的:postgresql://postgres:xyz@postgres:5432/postgres

查看完整回答
反对 回复 2021-10-26
?
缥缈止盈

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)

然后运行您的应用程序。


查看完整回答
反对 回复 2021-10-26
  • 2 回答
  • 0 关注
  • 171 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信