Flask request.args в Blueprint выбрасывает RuntimeError: Работа вне контекста запроса - PullRequest
0 голосов
/ 05 декабря 2018

У меня есть моя сборка моего приложения так:

main.py

from communication.rest.routes.v1.files import files
from communication.rest.routes.v1.data import data    

APP = Flask(__name__, template_folder='../templates')
APP.register_blueprint(data, url_prefix='/v1/data')
APP.register_blueprint(files, url_prefix='/v1/files') 
...

data.py

from flask import Blueprint, request
data = Blueprint('data', __name__)

@data.route('/days/details', methods=['GET'])
def get_days_details():
   kwargs = request.args.to_dict()
   ...

Если я хочу запустить свою колбу для отдыха, выдается ошибка:

RuntimeError: Работа вне контекста запроса.

Я не понимаю, что ясделали неправильно.Я не смог найти подсказку в документации Blueprints, как правильно получить request.args в Blueprint

line 64, in get_days_details
    kwargs = request.args.to_dict()
  File "C:\ProgramData\Anaconda3\lib\site-packages\werkzeug\local.py", line 347, in __getattr__
    return getattr(self._get_current_object(), name)
  File "C:\ProgramData\Anaconda3\lib\site-packages\werkzeug\local.py", line 306, in _get_current_object
    return self.__local()
  File "C:\ProgramData\Anaconda3\lib\site-packages\flask\globals.py", line 37, in _lookup_req_object
    raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.

1 Ответ

0 голосов
/ 06 декабря 2018

Я сделал ошибку.Так что, если вы видите это исключение при загрузке вашего модуля, может быть где-то вызов функции (не вызванный Flask).

Это работает, если вы не используете контекст запроса.Но если вы используете его, вы не можете вызывать его без контекста запроса (обычно генерируемого флягой, если запрос достигает вашей конечной точки).Для тестирования есть способ, как решить эту проблему в документации.Если вы не тестируете, просто проверьте использование этой функции и когда она вызывается.

Спасибо за помощь;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...