TypeError: объект 'connection' не вызывается в python с использованием mysqldb

python mysql mysql-python

2014 просмотра

1 ответ

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, опубликованном ранее, но не смог найти решение для того же. Если у кого-то есть решение, пожалуйста, помогите мне с этим. Спасибо .

Примечание: теперь этот код работает ... Спасибо

Автор: Tanmoy Sarkar Источник Размещён: 08.11.2019 10:56

Ответы (1)


5 плюса

Решение

замещать

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

с участием

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

Подробнее читайте в документации Flask-MySQLdb .

Автор: Nehal J Wani Размещён: 20.08.2016 06:03
Вопросы из категории :
32x32