Python 类型错误:';连接';对象不可调用
大家好,我正在学习一个在线教程来构建一个flask web应用程序,当我试图通过“注册”按钮将信息存储到我的数据库中时,不断遇到这个错误Python 类型错误:';连接';对象不可调用,python,flask,mysql-python,Python,Flask,Mysql 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__)
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)
我的理论是安装过程中出现了问题,但我不确定 这不是使用flask.ext.mysqldb获得连接或光标的方式。看 应该是:
cur = mysql.connection.cursor()
因此,根本不需要显式创建连接
(请注意,似乎有一个单独的项目,flask mysql,其API稍有不同,这可能是造成混淆的原因。)这不是使用flask.ext.mysqldb获得连接或光标的方式。看 应该是:
cur = mysql.connection.cursor()
因此,根本不需要显式创建连接
(请注意,似乎有一个单独的项目,flask mysql,其API稍有不同——这可能是造成混淆的原因。)我最近遇到了同样的问题,我解决了它 利用
conn=mysql.connect
而不是conn=mysql.connect()
我最近遇到了同样的问题,我解决了它
利用
conn=mysql.connect
而不是conn=mysql.connect()
谢谢您的帮助,但现在我收到了这个错误:\u mysql\u exceptions.OperationalError:(1046,'未选择数据库')谢谢您的帮助,但现在我收到了这个错误:\u mysql\u exceptions.OperationalError:(1046,“未选择数据库”)请检查代码中的缩进是否正确。请检查代码中的缩进是否正确。