Flask Создание глобальной функции ответа, которая будет вызываться из любого места в веб-приложении. - PullRequest
0 голосов
/ 14 апреля 2020

новичок в flask, у меня есть веб-приложение, которое содержит несколько частей, например:

utils/ 
-- utils.py
db/ 
-- oracle.py 
main.py 

Мой вопрос: как мне сделать функцию / обработчик global_response, который можно вызывать из: utils.py, oracle .py, main.py без проблем с потоками
например: в utils.py

clas Utils():
  def A(self):
     return global_response("error","a")

oracle .py

 clas Utils():
      def ORA(self):
         return global_response("error ora","b")

main.py def some_fun (self): вернуть global_response ("error main", "c")

, а вот функция ответа, которая была в main.py, но теперь должна вызываться из любого места:

def global_response(error_msg, title,*options):
    res = {"status": error_msg, "title": title}

    for option in options:
        res.update(option)

 return json.dumps(res)

1 Ответ

1 голос
/ 15 апреля 2020

Вместо создания функции ответа вы можете создать собственный класс ответа, который заменит встроенный класс flask Response.
Класс унаследует класс flask Response, что означает:

class GlobalResponse(Response):
    pass

Чтобы сгенерировать общий ответ c, необходимо вызвать метод app.make_response. Вы можете просмотреть эту ссылку , чтобы узнать, как создать класс ответа.

Дополнительные примечания

  1. Я бы порекомендовал вам проверить flask jsonify функцию, которая включает json.dumps и является считается «более сильным» (работает для большего количества случаев).

  2. Возможно, вы захотите взглянуть на flask 'make_response метод .

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