У меня есть ошибка ["<класс 'RecursionError'>", "RecursionError('превышена максимальная глубина рекурсии')", "<объект трPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 У меня есть ошибка ["<класс 'RecursionError'>", "RecursionError('превышена максимальная глубина рекурсии')", "<объект тр

Сообщение Anonymous »


Вот мои файлы:

wigs.py

импортировать ОС импортировать JSON импортировать logging.config из werkzeug.Exceptions импортировать HTTPException из flask_jwt_extended импорта JWTManager импортировать структурный журнал из dotenv импорта load_dotenv, find_dotenv из фляги импорта Flask, jsonify из ответа на импорт колбы из flask_cors импортировать CORS из prometheus_client, импорт CONTENT_TYPE_LATEST из prometheus_client импорт CollectorRegistry из импорта prometheus_clientgenerate_latest из prometheus_client импортировать многопроцессный процесс из импорта config.logger ( подготовить_регистрацию_конфигурации ) из импорта service.constants ( APP_LOG_LEVEL_ENV_KEY, SERVER_LOG_LEVEL_ENV_KEY, API_ERROR_UNHANDELED, ) из helper.api_types импорт create_error_return из handler.user импортировать user_routes из handler.post импортировать post_routes из handler.category импорт категории_маршрутов из handler.auth импортировать auth_routes из handler.detection импорт Vision_handler из handler.filters.user импортировать user_filter_routes из handler.filters.post импортировать post_filter_routes из handler.auth.auth_routes импортируйте get_revoked_token из handler.user.user_routes импортируйте get_user_by_username защита setup_logging(): """ Настройка ведения журнала с помощью журнала структуры :возвращаться: """ log_level = os.getenv(APP_LOG_LEVEL_ENV_KEY) logging.config.dictConfig( подготовить_регистрацию_конфигурации( int(log_level), если log_level не равен None else logging.INFO ) ) def init_app(use_log_handlers="gunicorn.error") -> Flask: """ Инициализировать приложение :возвращает колбу """ server_log_level = os.getenv(SERVER_LOG_LEVEL_ENV_KEY) flask_app = Flask(__name__) Request_logger = logging.getLogger(use_log_handlers) flask_app.logger.handlers = Request_logger.handlers[:] werkzeug_logger = logging.getLogger("werkzeug") werkzeug_logger.setLevel( int(server_log_level), если server_log_level не равен None else logging.ERROR ) журнал = structlog.get_logger() журнал.информация( "приложение колбы было инициализировано", server_log_level=werkzeug_logger.level, app_log_level=logging.root.level, ) вернуть flask_app load_dotenv(find_dotenv()) setup_logging() приложение = init_app() app.config['JWT_SECRET_KEY'] = os.environ.get('JWT_SECRET_KEY', 'jwt-secret-string') jwt = JWTManager (приложение) cors = CORS(приложение) @jwt.user_lookup_loader Защиту user_lookup_callback (_jwt_headers, jwt_data): личность = jwt_data["sub"] вернуть get_user_by_username (личность) @jwt.expired_token_loader def expired_token_callback(jwt_header, jwt_data): return jsonify({"message": "Срок действия токена истек", "error": "token_expired"}), 401 @jwt.invalid_token_loader защита valid_token_callback (ошибка): return jsonify({"message": "Проверка подписи не удалась", "error": "invalid_token"}), 401 @jwt.unauthorized_loader защита Missing_token_callback (ошибка): return jsonify({"message": "Запрос не содержит действительный токен", "error": "authorization_required"}), 401 @jwt.token_in_blocklist_loader def token_in_blocklist_callback(jwt_header, jwt_data): jti = jwt_data['jti'] токен = get_revoked_token (jti) токен возврата не имеет значения None @app.errorhandler(HTTPException) def handle_bad_request (ошибка: исключение) -> Ответ: журнал = structlog.get_logger() log.error(ошибка) вернуть ответ( ответ=json.dumps( create_error_return( API_ERROR_UNHANDELED, "Произошла неизвестная ошибка. пожалуйста, свяжитесь со службой поддержки", ) ), статус=400, mimetype="приложение/json", ) @app.route("/metrics") метрика определения(): реестр = CollectorRegistry() multiprocess.MultiProcessCollector(реестр) данные =generate_latest(реестр) вернуть ответ (данные, mimetype = CONTENT_TYPE_LATEST) app.register_blueprint(auth_routes.auth_bp) app.register_blueprint(user_routes.user_bp) app.register_blueprint(post_routes.post_bp) app.register_blueprint(category_routes.category_bp) app.register_blueprint(vision_handler.vision_bp) app.register_blueprint(user_filter_routes.filter_users_bp) app.register_blueprint(post_filter_routes.filter_posts_bp) app.register_error_handler(400, handle_bad_request) post_routes.py

@post_bp.route('/api/posts', методы=['GET']) @jwt_required() защита get_all_posts(): пытаться: сообщения = get_all_posts_service() вернуть jsonify(сообщения) кроме исключения как e: return jsonify({'error': str(e)}), 500 post_service.py

def get_all_posts_service(): курсор = Execute_query("ВЫБРАТЬ * ИЗ сообщений") вернуть [dict(row) для строки в курсоре.fetchall()] Вот проблема:

{"app": "SOCIAL_MEDIA_SERVICE", "event": "Исключение в /api/posts [GET]", "exc_info": ["", "RecursionError('превышена максимальная глубина рекурсии ')", ""], "level": "error", "timestamp": "2023-12-07 17:24:34"} {"app": "SOCIAL_MEDIA_SERVICE", "event": "", "level": "error", "timestamp": "2023-12-07 17:24:34"

Как решить эту проблему. Раньше такого не было, но теперь это происходит, поскольку я разделил код на два файла. это был post_handler.py, затем я разделил его на post_routes.py и post_service.py. И более того, если я удалю декоратор jwt_required(), он заработает.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»