Je pense qu'il s'agit d'un bug Python MySQL mais je ne comprends pas la situation. Erreur interne : résultats non lus trouvés
P粉193307465
P粉193307465 2023-09-10 22:20:52
0
1
410

Voici mon code API Flask

from flask import request
from flask_restful import Resource
from mysql.connector import Error
from flask_jwt_extended import jwt_required, get_jwt_identity

from mysql_connection import get_connection

class OrderListResource(Resource):

    # 내 주문내역 조회 API
    @jwt_required()
    def get(self):

        userId = get_jwt_identity()
        offset = request.args.get('offset')
        limit = request.args.get('limit')

         # 기본값
        if not offset:
            offset = 0
        if not limit:
            limit = 20

        try:
            connection = get_connection()
            # 주문한 시간이 늦은 순으로 정렬
            query = '''
                    select *
                    from orders
                    where userId = %s
                    order by createdAt desc;
                    limit '''+offset+''', '''+limit+''';
                    '''
            record = (userId, )
            cursor = connection.cursor(dictionary=True, buffered=True)
            cursor.execute(query, record)
            result_list = cursor.fetchall()

            for row in result_list:
                row['reservTime'] = row['reservTime'].isoformat()
                row['createdAt'] = row['createdAt'].isoformat()
            
            cursor.close()
            connection.close()
        
        except Error as e:
            print(e)
            cursor.close()
            connection.close()
            return {'error' : str(e)}, 500

        return {'result' : 'success',
                'items' : result_list,
                'count' : len(result_list)}, 200

Je l'ai déployé à l'aide d'AWS lambda et je l'ai testé à l'aide de Postman. Fonctionne bien dans l'état local, mais le serveur obtient une "Erreur interne du serveur". Locale AWS lambda

J'ai donc regardé les journaux CloudWatch et j'ai reçu le message d'erreur suivant :

[ERROR] InternalError: Unread result found

Ce qui est bizarre, c'est que parmi toutes les API que j'ai déployées, seule celle-ci m'a donné l'erreur. D'autres API fonctionnent correctement en local et sur le serveur. Donc je ne sais pas où est le problème.

J'ai mis bufferd=True dans curseur() qui est la solution lors de la recherche de l'erreur "résultats non lus trouvés", mais cela n'a aucun effet.

P粉193307465
P粉193307465

répondre à tous(1)
P粉982054449

J'ai résolu ce problème ! La raison est : est utilisé deux fois dans la requête. Il s'agit d'un problème simple mais qui fonctionne bien localement, je ne parviens donc pas à en trouver la cause. Désolé.

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal