首页 > 解决方案 > 使用 PostgresSQL 连接时出现 Flask 和 SQLAlchemy 错误

问题描述

我试图将我的第一个 Flask 应用程序与 SQLAlchemy 和 PostGreSQL 连接,但遇到以下错误。

UserWarning: Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. Defaulting SQLALCHEMY_DATABASE_URI to "sqlite:///:memory:".
  'Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set. '

经过几个小时的调试可能非常简单的事情,我用完了选项。从错误看来,问题出在 SQLAlCHEMY_DATABASE_URI 的变量上,但不是 100% 确定。我试过localhostlocalhost:5000` 但同样的错误。

阅读 SO 中的其他答案,我看到有时人们在定义配置时会遇到这个问题,db = SQLAlchemy(app)但我的代码中没有这样的问题。非常感谢任何潜在客户。

from flask import Flask, request, render_template
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config.update(
    SECRET_KEY='rafadbpw',
    SQLAlCHEMY_DATABASE_URI='postgresql://postgres:rafadbpw@localhost:5000/catalog_db',
    SQLALCHEMY_TRACK_MODIFICATIONS=False
)

db = SQLAlchemy(app)

@app.route('/index')
@app.route('/')
def hello_flask():
    return "Hello Flask!"

class Publication(db.Model):
    __tablename__ = 'publication'

    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(80), nullable=False)

    def __init__(self,id,name):
        self.id = id
        self.name = name

    def __repr__(self):
        return 'The id is {}, name is {}'.format(self.id, self.name)

if __name__ == '__main__':
    db.create_all()
    app.run(debug=True)

标签: pythonpostgresqlflasksqlalchemyflask-sqlalchemy

解决方案


推荐阅读