我如何将这个hello-flask应用程序与我的数据库连接,并在数据库中创建模型



我在尝试使用fask_sqlalchemy 为数据库创建模型时出错

Traceback(上次调用(:文件"/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py";,线3250,在_wrap_pool_connect中return fn((文件"/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py";,第310行,in连接return连接精灵_checkout(self(File"//usr/lib/python3/dist-packages/sqlalchemy/pool/base.py";,第868行,in_结账仙女=_ConnectionRecord.checkout(池(文件"//usr/lib/python3/dist-packages/sqlalchemy/pool/base.py";,第476行,in结账rec=池do_get((文件"/usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py";,第145行,indo_get使用util.safe_raise((:文件"/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py";,线70,在exitcompat.raise中(文件"/usr/lib/python3/dist-packages/sqlalchem/util/compat.py",第207行,在raiseraise exception File"中//usr/lib/python3/dist-packages/sqlalchemy/pool/impl.py";,第143行,in_do_get回归自我_create_connection((文件"/usr/lib/python3/dist-packages/sqlalchemy/pool/base.py";,第256行,in_创建连接return _ConnectionRecord(self(File"//usr/lib/python3/dist-packages/sqlalchemy/pool/base.py";,第371行,在initself__connect((文件"//usr/lib/python3/dist-packages/sqlalchemy/pool/base.py";,第665行,in连接使用util.safe_raise((:文件"/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py";,线70,在exitcompat.raise中(文件"/usr/lib/python3/dist-packages/sqlalchem/util/compat.py",第207行,在raiseraise exception File"中//usr/lib/python3/dist-packages/sqlalchemy/pool/base.py";,第661行,in__连接self.dbapi_connection=连接=池_invoke_creator(self(File//usr/lib/python3/dist-packages/sqlalchemy/engine/create.py";,线路590,连接return方言.connect(*cargs,**cparams(文件"//usr/lib/python3/dist-packages/sqlalchemy/engine/default.py";,线597,连接return self-dbapi.connect(*cargs,**cparams(File"/home/mikado/.local/lib/python3.10/site-packages/psycopg2/init.py";,线路122,连接conn=_connect(dsn,connection_factory=connection_factory,**kwasync(psycopg2.OperationalError:连接到"处的服务器;127.0.0.1";,端口5432失败:fe3endauth:未提供密码

我的代码:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql+psycopg2://mikado:@127.0.0.1:5432/hellodb'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
db = SQLAlchemy(app)
class Person(db.Model):
__tablename__= 'persons'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String(), nullable=False)

db.create_all()
@app.route('/')
def index():
return 'Hello World!'
if __name__ == '__main__':
app.run(host="0.0.0.0")

根据错误,您没有为SQL:提供任何凭据

no password supplied

您需要使用连接字符串来传递密码,如上所述https://flask-sqlalchemy.palletsprojects.com/en/2.x/config.html.修改现有的连接字符串,将<password here>部分替换为相关信息:

postgresql+psycopg2://mikado:<password here>@127.0.0.1:5432/hellodb

最新更新