app.py:
from flask import Flask ,render_template,request,url_for,redirect
from flask_sqlalchemy import SQLAlchemy
import psycopg2
app=Flask(__name__)
app.debug=False
app.config['SQLALCHEMY_DATABASE_URI']='postgres://myherokupostgresdatabasepassword'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
db=SQLAlchemy(app)
class Username(db.Model):
__tablename__ = "username"
id=db.Column(db.Integer,primary_key=True)
username=db.Column(db.String(200),unique=True)
def __init__(self,username):
self.username=username
@app.route("/submit",methods=["POST"])
def submit():
if request.method=="POST":
usernamee=request.form["username"]
usernamee=usernamee.replace(" ","")
sayi=db.session.query(Username).filter(Username.username==usernamee).count()
print("has been created-------------------->>",sayi,"times")
if usernamee=="" or usernamee==" ":
return "input is empty .please enter real username."
if sayi>0:
return "{} didnt created .because there is username like this alreay.".format(usernamee)
register=Username(username=usernamee)
db.session.add(register)
db.session.commit()
return render_template("submit.html",message="{} have been entered".format(usernamee))
return render_template("submit.html")
@app.route("/",)
def index():
all=db.session.query(Username).all()
return render_template("register.html",usernames=all)
if __name__=="__main__":
app.debug=True
app.run()
错误:*
2020-04-19T18:51:16.120751 + 00:00 app [web.1]:文件 “ /app/.heroku/python/lib/python3.7/site-packages/psycopg2/init.py”, 连接中的127行2020-04-19T18:51:16.120751 + 00:00 app [web.1]:
conn = _connect(dsn,connection_factory = connection_factory,** kwasync) 2020-04-19T18:51:16.120752 + 00:00 app [web.1]: sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)无法 连接到服务器:连接被拒绝2020-04-19T18:51:16.120752 + 00:00 app [web.1]:服务器是否在主机“ localhost”(127.0.0.1)上运行,并且 接受2020-04-19T18:51:16.120752 + 00:00 app [web.1]:TCP / IP 端口5432上是否有连接?
* 当我运行此命令时
>> from app import db
>> db.create_all()
它给我这个错误:
回溯(最近通话最近):文件 “ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/base.py”, _wrap_pool_connect中的第2285行 返回fn()文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, 连接线363 返回_ConnectionFairy._checkout(self)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, _checkout中的773行 fairy = _ConnectionRecord.checkout(pool)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, 492行,结帐 rec = pool._do_get()文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/impl.py”, _do_get中的第139行 self._dec_overflow()文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py”, 第69行,退出 exc_value,with_traceback = exc_tb,文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/compat.py”, 第178行,在raise_ 引发异常文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/impl.py”, _do_get中的第136行 返回self._create_connection()文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, _create_connection中的第308行 返回_ConnectionRecord(self)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, 第437行,在 init 自我。 connect(first_connect_check = True)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, __connect中的657行 pool.logger.debug(“ connect()上的错误:%s”,e)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py”, __exit 中的第69行 exc_value,with_traceback = exc_tb,文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/compat.py”, 第178行,在raise_ 引发异常文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, 连接中的第652行 connection = pool._invoke_creator(self)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py”, 连接线114 return dialect.connect(* cargs,** cparams)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/default.py”, 490行,处于连接状态 返回self.dbapi.connect(* cargs,** cparams)文件“ /app/.heroku/python/lib/python3.7/site-packages/psycopg2/__init.py”, 连接中的第127行 conn = _connect(dsn,connection_factory = connection_factory,** kwasync)psycopg2.OperationalError:无法连接到服务器:连接被拒绝 服务器是否在主机“ localhost”(127.0.0.1)上运行并接受 端口5432上的TCP / IP连接?
上述异常是以下异常的直接原因:
回溯(最近一次通话最后一次):文件“”,第1行,在 文件 “ /app/.heroku/python/lib/python3.7/site-packages/flask_sqlalchemy/init.py”, 第1033行,位于create_all中 self._execute_for_all_tables(app,bind,'create_all')文件“ /app/.heroku/python/lib/python3.7/site-packages/flask_sqlalchemy/init.py”, 第1025行,在_execute_for_all_tables中 op(bind = self.get_engine(app,bind),** extra)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/sql/schema.py”, create_all中的第4321行 ddl.SchemaGenerator,自身,checkfirst = checkfirst,表=表文件 “ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/base.py”, _run_visitor中的第2057行 使用self._optional_conn_ctx_manager(connection)作为conn:文件“ /app/.heroku/python/lib/python3.7/contextlib.py”,第112行,在 输入 返回next(self.gen)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/base.py”, 第2049行,在_optional_conn_ctx_manager中 使用self._contextual_connect()作为conn:文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/base.py”, _contextual_connect中的第2251行 self._wrap_pool_connect(self.pool.connect,无),文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/base.py”, _wrap_pool_connect中的第2289行 e,方言,自身文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/base.py”, 第1555行,在_handle_dbapi_exception_noconnection中 sqlalchemy_exception,with_traceback = exc_info [2],from_ = e文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/compat.py”, 第178行,在raise_ 引发异常文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/base.py”, _wrap_pool_connect中的第2285行 返回fn()文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, 连接线363 返回_ConnectionFairy._checkout(self)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, _checkout中的773行 fairy = _ConnectionRecord.checkout(pool)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, 492行,结帐 rec = pool._do_get()文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/impl.py”, _do_get中的第139行 self._dec_overflow()文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py”, 第69行,退出 exc_value,with_traceback = exc_tb,文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/compat.py”, 第178行,在raise_ 引发异常文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/impl.py”, _do_get中的第136行 返回self._create_connection()文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, _create_connection中的第308行 返回_ConnectionRecord(self)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, 第437行,在 init 自我。 connect(first_connect_check = True)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, __connect中的657行 pool.logger.debug(“ connect()上的错误:%s”,e)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/langhelpers.py”, __exit 中的第69行 exc_value,with_traceback = exc_tb,文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/util/compat.py”, 第178行,在raise_ 引发异常文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/pool/base.py”, 连接中的第652行 connection = pool._invoke_creator(self)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/strategies.py”, 连接线114 return dialect.connect(* cargs,** cparams)文件“ /app/.heroku/python/lib/python3.7/site-packages/sqlalchemy/engine/default.py”, 490行,处于连接状态 返回self.dbapi.connect(* cargs,** cparams)文件“ /app/.heroku/python/lib/python3.7/site-packages/psycopg2/__init.py”, 连接中的第127行 conn = _connect(dsn,connection_factory = connection_factory,** kwasync)sqlalchemy.exc.OperationalError:(psycopg2.OperationalError)无法连接到服务器:Connection 被拒绝 服务器是否在主机“ localhost”(127.0.0.1)上运行并接受 端口5432上的TCP / IP连接?
(此错误的背景位于:http://sqlalche.me/e/e3q8)
>