gpt4 book ai didi

python - 类型错误 : 'connection' object is not callable in python using mysqldb

转载 作者:行者123 更新时间:2023-12-01 00:38:57 30 4
gpt4 key购买 nike

from flask import Flask
from flask_restful import Resource, Api
from flask_restful import reqparse
from flask_mysqldb import MySQL



mysql = MySQL()
app = Flask(__name__)

# MySQL configurations
app.config['MYSQL_USER'] = 'root'
app.config['MYSQL_PASSWORD'] = ''
app.config['MYSQL_DB'] = 'itemlistdb'
app.config['MYSQL_HOST'] = 'localhost'




mysql.init_app(app)

api = Api(app)

class AuthenticateUser(Resource):
def post(self):
try:
# Parse the arguments

parser = reqparse.RequestParser()
parser.add_argument('email', type=str, help='Email address for Authentication')
parser.add_argument('password', type=str, help='Password for Authentication')
args = parser.parse_args()

_userEmail = args['email']
_userPassword = args['password']

conn = mysql.connection
cursor = conn.cursor()
cursor.callproc('sp_AuthenticateUser',(_userEmail,))
data = cursor.fetchall()


if(len(data)>0):
if(str(data[0][2])==_userPassword):
return {'status':200,'UserId':str(data[0][0])}
else:
return {'status':100,'message':'Authentication failure'}

except Exception as e:
return {'error': str(e)}


class GetAllItems(Resource):
def post(self):
try:
# Parse the arguments
parser = reqparse.RequestParser()
parser.add_argument('id', type=str)
args = parser.parse_args()

_userId = args['id']

conn = mysql.connection
cursor = conn.cursor()
cursor.callproc('sp_GetAllItems',(_userId,))
data = cursor.fetchall()

items_list=[];
for item in data:
i = {
'Id':item[0],
'Item':item[1]
}
items_list.append(i)

return {'StatusCode':'200','Items':items_list}

except Exception as e:
return {'error': str(e)}

class AddItem(Resource):
def post(self):
try:
# Parse the arguments
parser = reqparse.RequestParser()
parser.add_argument('id', type=str)
parser.add_argument('item', type=str)
args = parser.parse_args()

_userId = args['id']
_item = args['item']

print _userId;

conn = mysql.connection
cursor = conn.cursor()
cursor.callproc('sp_AddItems',(_userId,_item))
data = cursor.fetchall()

conn.commit()
return {'StatusCode':'200','Message': 'Success'}

except Exception as e:
return {'error': str(e)}



class CreateUser(Resource):
def post(self):
try:
# Parse the arguments
parser = reqparse.RequestParser()
parser.add_argument('email', type=str, help='Email address to create user')
parser.add_argument('password', type=str, help='Password to create user')
args = parser.parse_args()

_userEmail = args['email']
_userPassword = args['password']

conn = mysql.connection
cursor = conn.cursor()
cursor.callproc('spCreateUser',(_userEmail,_userPassword))
data = cursor.fetchall()

if len(data) is 0:
conn.commit()
return {'StatusCode':'200','Message': 'User creation success'}
else:
return {'StatusCode':'1000','Message': str(data[0])}

except Exception as e:
return {'error': str(e)}



api.add_resource(CreateUser, '/CreateUser')
api.add_resource(AuthenticateUser, '/AuthenticateUser')
api.add_resource(AddItem, '/AddItem')
api.add_resource(GetAllItems, '/GetAllItems')

if __name__ == '__main__':
app.run(debug=True)

它抛出错误“连接对象不可调用”。我已经在之前发布的@stackoverflow 中搜索了所有可能的问题,但找不到相同的解决方案。如果有人有解决方案,请帮助我。谢谢。

注意:现在这段代码可以正常工作了...谢谢

最佳答案

替换

conn = mysql.connect()
cursor = conn.cursor()

conn = mysql.connection
cursor = conn.cursor()

阅读更多关于 Flask-MySQLdb 的 docs .

关于python - 类型错误 : 'connection' object is not callable in python using mysqldb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39050987/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com