TypeError:“Connection”对象不是callab

2024-09-23 08:16:41 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我正在跟随一个在线教程来构建一个flask web应用程序,当我试图通过注册按钮将信息存储到我的数据库中时,经常遇到这个错误。在

from flask import Flask, render_template, json, request
from flask.ext.mysqldb import MySQL
from werkzeug import generate_password_hash, check_password_hash

app = Flask(__name__)

mysql = MySQL(app)

# MySQL configurations
app.config['MYSQL_DATABASE_USER'] = 'root'
app.config['MYSQL_DATABASE_PASSWORD'] = 'pass'
app.config['MYSQL_DATABASE_DB'] = 'table'
app.config['MYSQL_DATABASE_HOST'] = 'localhost'
mysql.init_app(app)




@app.route("/")
def main():
return render_template('index.html')
@app.route('/showSignUp')
def showSignUp():
return render_template('signup.html')

@app.route('/signUp', methods = ['POST','GET' ])
def signUp():


_phonenumber = request.form['phonenumber']
_name = request.form['name']
_password = request.form['password']

if _phonenumber and _name and _password:
    conn = mysql.connect()           
    cursor = conn.cursor()
    _hashed_password = generate_password_hash(_password)
    cursor.callproc('sp_createphoneuser',   (_phonenumber,_name,_hashed_password))
    data = cursor.fetchall()
    if len(data) is 0:
        conn.commit()
        return json.dumps({'message':"User created successfully !"})
    else:
        return json.dumps({'error':str(data[0])})

 else:
    return json.dumps({'html':'<span>Enter the required fields</span>'}) 



if __name__ == "__main__":
    app.debug = True    
    app.run(port=5002)

这就是我的代码,每次我试图注册一个用户时,终端都会出现这个错误:

^{pr2}$

我的理论是在安装过程中出现了问题,但我不确定。在


Tags: namefromimportconfigjsonappflaskreturn
2条回答

这不是你如何获得一个连接,或光标,与flask.ext.mysqldb. 见the documentation。在

它应该是:

cur = mysql.connection.cursor()

所以根本不需要显式地创建连接。在

(请注意,似乎有一个单独的项目flaskmysql,其API稍有不同——这可能是造成混淆的原因。)

我最近也遇到了同样的问题,我解决了

通过使用 conn = mysql.connect而不是conn = mysql.connect()

相关问题 更多 >