Postgresql sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)fe_sendauth:未提供密码

Postgresql sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)fe_sendauth:未提供密码,postgresql,flask,sqlalchemy,flask-sqlalchemy,Postgresql,Flask,Sqlalchemy,Flask Sqlalchemy,我正在尝试运行这个简单的flask应用程序,当我尝试运行flask应用程序时,终端中不断出现此错误 FLASK\u APP=APP.py烧瓶运行 我不断地发现这个错误: sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)fe_sendauth:未提供密码 这是我的应用程序: from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__

我正在尝试运行这个简单的flask应用程序,当我尝试运行flask应用程序时,终端中不断出现此错误
FLASK\u APP=APP.py烧瓶运行
我不断地发现这个错误:
sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)fe_sendauth:未提供密码

这是我的应用程序:

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://postgres@localhost:5432/testdb'
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!'
只是澄清一下,我已经安装了psycopg2、flask SQLAlchemy和所有依赖项,默认情况下用户postgres没有密码,我没有更改密码,我可以使用psql登录数据库,而无需密码

完整错误输出:

FLASK_APP=app.py flask run
 * Serving Flask app "app.py"
 * Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
 * Debug mode: off
/usr/lib/python3/dist-packages/flask_sqlalchemy/__init__.py:800: UserWarning: SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True to suppress this warning.
  warnings.warn('SQLALCHEMY_TRACK_MODIFICATIONS adds significant overhead and will be disabled by default in the future.  Set it to True to suppress this warning.')
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 1122, in _do_get
    return self._pool.get(wait, self._timeout)
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/queue.py", line 145, in get
    raise Empty
sqlalchemy.util.queue.Empty
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2147, in _wrap_pool_connect
    return fn()
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 387, in connect
    return _ConnectionFairy._checkout(self)
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 766, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 516, in checkout
    rec = pool._do_get()
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 1138, in _do_get
    self._dec_overflow()
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 187, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 1135, in _do_get
    return self._create_connection()
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 333, in _create_connection
    return _ConnectionRecord(self)
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 461, in __init__
    self.__connect(first_connect_check=True)
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 651, in __connect
    connection = pool._invoke_creator(self)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/strategies.py", line 105, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 393, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/aa/.local/lib/python3.6/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
psycopg2.OperationalError: fe_sendauth: no password supplied
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/home/aa/.local/bin/flask", line 11, in <module>
    sys.exit(main())
  File "/home/aa/.local/lib/python3.6/site-packages/flask/cli.py", line 967, in main
    cli.main(args=sys.argv[1:], prog_name="python -m flask" if as_module else None)
  File "/home/aa/.local/lib/python3.6/site-packages/flask/cli.py", line 586, in main
    return super(FlaskGroup, self).main(*args, **kwargs)
  File "/home/aa/.local/lib/python3.6/site-packages/click/core.py", line 782, in main
    rv = self.invoke(ctx)
  File "/home/aa/.local/lib/python3.6/site-packages/click/core.py", line 1259, in invoke
    return _process_result(sub_ctx.command.invoke(sub_ctx))
  File "/home/aa/.local/lib/python3.6/site-packages/click/core.py", line 1066, in invoke
    return ctx.invoke(self.callback, **ctx.params)
  File "/home/aa/.local/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/aa/.local/lib/python3.6/site-packages/click/decorators.py", line 73, in new_func
    return ctx.invoke(f, obj, *args, **kwargs)
  File "/home/aa/.local/lib/python3.6/site-packages/click/core.py", line 610, in invoke
    return callback(*args, **kwargs)
  File "/home/aa/.local/lib/python3.6/site-packages/flask/cli.py", line 848, in run_command
    app = DispatchingApp(info.load_app, use_eager_loading=eager_loading)
  File "/home/aa/.local/lib/python3.6/site-packages/flask/cli.py", line 305, in __init__
    self._load_unlocked()
  File "/home/aa/.local/lib/python3.6/site-packages/flask/cli.py", line 330, in _load_unlocked
    self._app = rv = self.loader()
  File "/home/aa/.local/lib/python3.6/site-packages/flask/cli.py", line 388, in load_app
    app = locate_app(self, import_name, name)
  File "/home/aa/.local/lib/python3.6/site-packages/flask/cli.py", line 240, in locate_app
    __import__(module_name)
  File "/home/aa/Desktop/Udacity - FullStackND 2020/FullStackND2020/Practice Projects/flask hello world app/app.py", line 18, in <module>
    db.create_all()
  File "/usr/lib/python3/dist-packages/flask_sqlalchemy/__init__.py", line 972, in create_all
    self._execute_for_all_tables(app, bind, 'create_all')
  File "/usr/lib/python3/dist-packages/flask_sqlalchemy/__init__.py", line 964, in _execute_for_all_tables
    op(bind=self.get_engine(app, bind), **extra)
  File "/usr/lib/python3/dist-packages/sqlalchemy/sql/schema.py", line 3934, in create_all
    tables=tables)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1928, in _run_visitor
    with self._optional_conn_ctx_manager(connection) as conn:
  File "/usr/lib/python3.6/contextlib.py", line 81, in __enter__
    return next(self.gen)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1921, in _optional_conn_ctx_manager
    with self.contextual_connect() as conn:
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2112, in contextual_connect
    self._wrap_pool_connect(self.pool.connect, None),
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2151, in _wrap_pool_connect
    e, dialect, self)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 1465, in _handle_dbapi_exception_noconnection
    exc_info
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 203, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb, cause=cause)
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 186, in reraise
    raise value.with_traceback(tb)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py", line 2147, in _wrap_pool_connect
    return fn()
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 387, in connect
    return _ConnectionFairy._checkout(self)
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 766, in _checkout
    fairy = _ConnectionRecord.checkout(pool)
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 516, in checkout
    rec = pool._do_get()
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 1138, in _do_get
    self._dec_overflow()
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/langhelpers.py", line 66, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py", line 187, in reraise
    raise value
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 1135, in _do_get
    return self._create_connection()
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 333, in _create_connection
    return _ConnectionRecord(self)
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 461, in __init__
    self.__connect(first_connect_check=True)
  File "/usr/lib/python3/dist-packages/sqlalchemy/pool.py", line 651, in __connect
    connection = pool._invoke_creator(self)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/strategies.py", line 105, in connect
    return dialect.connect(*cargs, **cparams)
  File "/usr/lib/python3/dist-packages/sqlalchemy/engine/default.py", line 393, in connect
    return self.dbapi.connect(*cargs, **cparams)
  File "/home/aa/.local/lib/python3.6/site-packages/psycopg2/__init__.py", line 126, in connect
    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) fe_sendauth: no password supplied

FLASK\u APP=APP.py烧瓶运行
*服务烧瓶应用程序“app.py”
*环境:生产
警告:这是一个开发服务器。不要在生产部署中使用它。
改用生产WSGI服务器。
*调试模式:关闭
/usr/lib/python3/dist-packages/flask\u sqlalchemy/\u_init\uu uu.py:800:UserWarning:sqlalchemy\u TRACK\u修改会增加大量开销,并将在将来默认情况下禁用。将其设置为True以抑制此警告。
warnings.warn('SQLALCHEMY\u TRACK\u修改会增加大量开销,并且在将来默认情况下将被禁用。将其设置为True可抑制此警告。“)
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python3/dist packages/sqlalchemy/pool.py”,第1122行,在
返回self.\u pool.get(等待,self.\u超时)
get中的文件“/usr/lib/python3/dist packages/sqlalchemy/util/queue.py”,第145行
空举
sqlalchemy.util.queue.Empty
在处理上述异常期间,发生了另一个异常:
回溯(最近一次呼叫最后一次):
文件“/usr/lib/python3/dist-packages/sqlalchemy/engine/base.py”,第2147行,在_-wrap\u-pool\u-connect中
返回fn()
文件“/usr/lib/python3/dist-packages/sqlalchemy/pool.py”,第387行,在connect中
返回\u连接\u签出(自我)
文件“/usr/lib/python3/dist packages/sqlalchemy/pool.py”,第766行,in\u签出
fairy=\u ConnectionRecord.checkout(池)
文件“/usr/lib/python3/dist packages/sqlalchemy/pool.py”,第516行,在签出中
rec=pool.\u do\u get()
文件“/usr/lib/python3/dist packages/sqlalchemy/pool.py”,第1138行,在
self._dec_overflow()
文件“/usr/lib/python3/dist packages/sqlalchemy/util/langhelpers.py”,第66行,在退出时__
兼容性(exc_类型、exc_值、exc_tb)
文件“/usr/lib/python3/dist-packages/sqlalchemy/util/compat.py”,第187行,重新登录
增值
文件“/usr/lib/python3/dist packages/sqlalchemy/pool.py”,第1135行,在
返回self.\u创建\u连接()
文件“/usr/lib/python3/dist packages/sqlalchemy/pool.py”,第333行,位于创建连接中
返回连接记录(自身)
文件“/usr/lib/python3/dist packages/sqlalchemy/pool.py”,第461行,在__
自我连接(第一次连接检查=真)
文件“/usr/lib/python3/dist packages/sqlalchemy/pool.py”,第651行,在连接中
连接=池。\u调用\u创建者(自身)
文件“/usr/lib/python3/dist packages/sqlalchemy/engine/strategies.py”,第105行,在connect中
返回方言。连接(*cargs,**cparams)
文件“/usr/lib/python3/dist packages/sqlalchemy/engine/default.py”,第393行,在connect中
返回self.dbapi.connect(*cargs,**cparams)
文件“/home/aa/.local/lib/python3.6/site packages/psycopg2/_init__.py”,第126行,在connect中
连接=连接(dsn,连接工厂=连接工厂,**kwasync)
psycopg2.OperationalError:fe_sendauth:未提供密码
上述异常是以下异常的直接原因:
回溯(最近一次呼叫最后一次):
文件“/home/aa/.local/bin/flask”,第11行,在
sys.exit(main())
文件“/home/aa/.local/lib/python3.6/site-packages/flask/cli.py”,第967行,在main中
cli.main(args=sys.argv[1:],prog_name=“python-m flask”如果as_模块else无)
文件“/home/aa/.local/lib/python3.6/site-packages/flask/cli.py”,第586行,在main中
返回超级(烧瓶组,自身)。主(*args,**kwargs)
文件“/home/aa/.local/lib/python3.6/site packages/click/core.py”,第782行,在main中
rv=自调用(ctx)
文件“/home/aa/.local/lib/python3.6/site packages/click/core.py”,调用中的第1259行
返回进程结果(sub_ctx.command.invoke(sub_ctx))
文件“/home/aa/.local/lib/python3.6/site packages/click/core.py”,调用中的第1066行
返回ctx.invoke(self.callback,**ctx.params)
文件“/home/aa/.local/lib/python3.6/site packages/click/core.py”,调用中的第610行
返回回调(*args,**kwargs)
文件“/home/aa/.local/lib/python3.6/site packages/click/decorators.py”,第73行,在新函数中
返回ctx.invoke(f,obj,*args,**kwargs)
文件“/home/aa/.local/lib/python3.6/site packages/click/core.py”,调用中的第610行
返回回调(*args,**kwargs)
文件“/home/aa/.local/lib/python3.6/site packages/flask/cli.py”,第848行,在run_命令中
app=DispatchingApp(info.load\u app,使用\u eager\u loading=eager\u loading)
文件“/home/aa/.local/lib/python3.6/site packages/flask/cli.py”,第305行,在__
自身。_加载_解锁()
文件“/home/aa/.local/lib/python3.6/site packages/flask/cli.py”,第330行,在“加载”中
self.\u app=rv=self.loader()
load_应用程序中的文件“/home/aa/.local/lib/python3.6/site packages/flask/cli.py”,第388行
应用程序=定位应用程序(自我、导入名称、名称)
文件“/home/aa/.local/lib/python3.6/site packages/flask/cli.py”,第240行,在locate_应用程序中
__导入(模块名称)
文件“/home/aa/Desktop/Udacity-FullStackND2020/FullStackND2020/Practice Projects/flask hello world app/app.py”,第18行,在
db.create_all()
文件“/usr/lib/python3/dist packages/flask\u sqlalchemy/_init\u_.py”,第972行,在create\u all中
self.\u为所有表执行(应用程序、绑定、“创建所有表”)
文件“/usr/lib/python3/dist packages/flask\u sqlalchemy/\uuuuuuu init\uuuuuuuuuuu.py”,第964行,用于所有表的执行
op(绑定=自身获取引擎(应用,绑定),**额外)