0

次のPythonコードがあります

app = Flask(__name__)      
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://my_user_name:@localhost:5432/my_db'
db = SQLAlchemy(app)

@app.route("/submit_signup_email", methods=["POST"])
def submit_signup_email():
  email = request.form["email"]
  created_timestamp = int(time.time())
  signup            = Signup(email, created_timestamp)
  db.session.add(signup)
  db.session.commit()

  # not working...
  test = Signup.query.filter_by(email=email).first()

これは正常に機能し、DB に行が正しく挿入されたことを確認できます。

しかし、「db.session.commit()」の後にこのコードを実行すると.....

test = Signup.query.filter_by(email=email).first()

次のエラーが表示されます。

OperationalError: (OperationalError) could not connect to server: No such file or directory サーバーはローカルで実行されており、Unix ドメイン ソケット "/var/pgsql_socket/.s.PGSQL.5432" で接続を受け入れていますか?

何が問題なのかわかりません。私のサインアップ モデルは "models.py" で次のようになっています。

from flask_sqlalchemy import SQLAlchemy
from app import app, db

class Signup(db.Model):
  __tablename__     = "signups"
  id                = db.Column(db.Integer, primary_key=True)
  email             = db.Column(db.String)
  created_timestamp = db.Column(db.Integer)

  def __init__(self, email, created_timestamp):
    self.email             = email
    self.created_timestamp = created_timestamp

  def __repr__(self):
    return self.email
4

2 に答える 2

-1

PostfreSql の問題のようです。サーバーを再起動してみてください。

編集

(チャット ルームで) コードを確認した後、問題は「循環インポート」である可能性があります。それを防ごうとする

于 2013-06-04T08:00:13.100 に答える