import os
import datetime
from flask import Flask, render_template, redirect, url_for
#from database import DatabaseConnection
#from models import kayıt
from forms import LoginForm
import psycopg2 as p
conn=p.connect(dbname='app_db', user='postgres', host='localhost', password='samet', port=5432)
conn.autocommit=True
cur=conn.cursor()
conn'and line
psycopg2.OperationalError: could not connect to server: Connection refused
使用; PostgreSQL的:9.6.5 蟒:3
如果我只运行带有信息的postgre,但它没有在python中运行
谢谢
对不起,我应该更清楚地解释一下。我正在和一个码头工人打交道。我有3个容器,但我试图通过PostgreSQL使用python容器。我想为此使用psycopg2。但我收到这样的错误。我的登录信息是正确的。我查了一下。
答案 0 :(得分:1)
弄清楚如何解决此问题:
根据this answer:
Postgres与烧瓶不在同一个容器中运行 应用程序,为什么它不能通过本地主机加入。我们应该 使用flask找到docker容器的IP地址并添加它,或者 只需添加Postgres或volume_name代替localhost。
因此您的连接应如下所示:
conn=p.connect(dbname='app_db', user='postgres', host='volume_name_of_postgres_in_docker_compose', password='samet', port=543
答案 1 :(得分:-1)
您确定传递给psycopg2
connect
函数的所有参数都是正确的吗?
conn=p.connect(dbname='app_db', user='postgres', host='localhost', password='samet', port=5432)
数据库名称,用户名,主机,密码和端口都可能不正确。