【发布时间】:2021-09-08 07:06:58
【问题描述】:
所以我正在尝试建立一个简单的博客网站,我在其中使用 Flask 和 flask_sqlalchemy。 在这里,我尝试添加信息(姓名、电子邮件 ID 等)UI part,然后单击按钮,它将保存到 localhost/phpMyadmin。
这里是 Main.py 文件
from flask import Flask , render_template ,redirect, url_for, request
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:@localhost/PersonalBlog'
# initialize
db = SQLAlchemy(app)
# To Db
class PostTable(db.Model):
sno = db.Column(db.Integer, primary_key=True, unique=True, nullable=False)
date = db.Column(db.DATE, primary_key=False)
name = db.Column(db.String(120), unique=False, nullable=False)
emailid = db.Column(db.String(50), unique=False, nullable=False)
phone = db.Column(db.String(15), unique=False, nullable=False)
message = db.Column(db.String(120), unique=False, nullable=False)
@app.route("/")
def home():
return render_template('index.html')
@app.route("/homeclick")
def homeclick():
return render_template('index.html')
@app.route("/about")
def about():
return render_template('about.html')
@app.route("/post")
def post():
return render_template('post.html')
@app.route("/contact" , methods=['POST', 'GET'])
def contact():
if request.method == 'POST' :
# add entry to the database
name = request.form.get('name')
emailid = request.form.get('email')
phone = request.form.get('phone_number')
message = request.form.get('message')
entry_to_db = PostTable(name=name, emailid=emailid , phone=phone, message=message)
db.session.add(entry_to_db)
db.session.commit()
return render_template('contact.html')
if __name__ == '__main__':
app.run(debug=True, port=4013 , threaded=True)
在提供详细信息后单击提交按钮时显示以下错误。
sqlalchemy.exc.OperationalError sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: NO)") (此错误的背景:http://sqlalche.me/e/14/e3q8)
完整的追溯细节(如果有帮助)
文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3211 行,在 _wrap_pool_connect 返回 fn() 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 307 行 返回 _ConnectionFairy._checkout(self) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 767 行,在 _checkout 仙女 = _ConnectionRecord.checkout(pool) 结帐时的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 425 行 rec = pool._do_get() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py”,第 146 行,在 do_get self.dec_overflow() exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 _do_get 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py”,第 143 行 返回 self._create_connection() _create_connection 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 253 行 返回 _ConnectionRecord(self) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 368 行 self.__connect() connect 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 611 行 pool.logger.debug("connect() 出错:%s", e) exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 605 行,在 __connect 连接 = pool._invoke_creator(self) 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/create.py”,第 578 行 return dialect.connect(*cargs, **cparams) 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/default.py”,第 584 行 return self.dbapi.connect(*cargs, **cparams) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/MySQLdb/init.py”,第 130 行,在 Connect 返回连接(*args,**kwargs) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/MySQLdb/connections.py”,第 185 行 super().init(*args, **kwargs2) 上述异常是以下异常的直接原因: 调用中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 2088 行 return self.wsgi_app(environ, start_response) wsgi_app 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 2073 行 响应 = self.handle_exception(e) wsgi_app 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 2070 行 响应 = self.full_dispatch_request() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 1515 行,在 full_dispatch_request rv = self.handle_user_exception(e) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 1513 行,在 full_dispatch_request rv = self.dispatch_request() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/flask/app.py”,第 1499 行,在 dispatch_request return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/main.py”,第 48 行,联系方式 db.session.commit() 文件“”,第 2 行,在提交中
文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 1428 行,在提交中 self._transaction.commit(_to_root=self.future) 提交中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 829 行 self._prepare_impl() _prepare_impl 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 808 行 self.session.flush() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 3298 行,齐平 self._flush(对象) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 3438 行,在 flush transaction.rollback(capture_exception=True) exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 _flush 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 3398 行 flush_context.execute() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py”,第 456 行,在执行 rec.execute(self) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/unitofwork.py”,第 630 行,在执行 util.preloaded.orm_persistence.save_obj( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py”,第 209 行,在 save_obj 中 为了 ( organize_states_for_save 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py”,第 370 行 对于状态、字典、映射器、_connections_for_states 中的连接( _connections_for_states 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/persistence.py”,第 1709 行 连接 = uowtransaction.transaction.connection(base_mapper) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 626 行,连接 return self._connection_for_bind(bind, execution_options) _connection_for_bind 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 735 行 conn = self._parent._connection_for_bind(bind, execution_options) _connection_for_bind 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/orm/session.py”,第 747 行 conn = bind.connect() 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3165 行 返回 self._connection_cls(self, close_with_result=close_with_result) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 96 行 否则 engine.raw_connection() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3244 行,位于 raw_connection 返回 self._wrap_pool_connect(self.pool.connect, _connection) _wrap_pool_connect 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3214 行 连接。handle_dbapi_exception_noconnection( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 2068 行,在 handle_dbapi_exception_noconnection util.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 _wrap_pool_connect 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/base.py”,第 3211 行 返回 fn() 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 307 行 返回 _ConnectionFairy._checkout(self) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 767 行,在 _checkout 仙女 = _ConnectionRecord.checkout(pool) 结帐时的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 425 行 rec = pool._do_get() 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py”,第 146 行,在 do_get self.dec_overflow() exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 _do_get 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/impl.py”,第 143 行 返回 self._create_connection() _create_connection 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 253 行 返回 _ConnectionRecord(self) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 368 行 self.__connect() connect 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 611 行 pool.logger.debug("connect() 出错:%s", e) exit 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/langhelpers.py”,第 70 行 compat.raise( 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/util/compat.py”,第 207 行,在 raise 引发异常 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/pool/base.py”,第 605 行,在 __connect 连接 = pool._invoke_creator(self) 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/create.py”,第 578 行 return dialect.connect(*cargs, **cparams) 连接中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/sqlalchemy/engine/default.py”,第 584 行 return self.dbapi.connect(*cargs, **cparams) 文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/MySQLdb/init.py”,第 130 行,在 Connect 返回连接(*args,**kwargs) init 中的文件“/Users/ranjankumar/Desktop/Folders/Project Flask/env/lib/python3.8/site-packages/MySQLdb/connections.py”,第 185 行 super().init(*args, **kwargs2) sqlalchemy.exc.OperationalError: (MySQLdb._exceptions.OperationalError) (1045, "Access denied for user 'root'@'localhost' (using password: NO)") (此错误的背景:http://sqlalche.me/e/14/e3q8) 调试器在您的 WSGI 应用程序中捕获了一个异常。您现在可以查看导致错误的回溯。 要在交互式回溯和明文回溯之间切换,您可以单击“回溯”标题。从文本回溯中,您还可以创建它的粘贴。对于代码执行,将鼠标悬停在要调试的框架上,然后单击右侧的控制台图标。
您可以在堆栈帧中执行任意 Python 代码,并且有一些额外的帮助程序可用于自省:
dump() 显示框架中的所有变量 dump(obj) 转储所有已知的对象
【问题讨论】:
标签: javascript python python-3.x flask flask-sqlalchemy