Колба-ответ
- О Ответ:
- Вид возвращаемого значения функции будет автоматически преобразован в объект ответа, логика преобразования Колбу выглядит следующим образом:
- Если он возвращает строку, то колба воссоздана объект werkzeug.wrappers.Response, строка в качестве кода состояния 200 хоста Response, MIME является текст / HTML, а затем вернуть ответ
- Если возвращение наследственное, тип данных наследственного должен быть (ответ, статус, заголовки). Статус переопределяет значение по умолчанию коды состояния 200, заголовок может быть список или словарь, в ответ на первое сообщение.
- Если она возвращает объект Response возвращается непосредственно.
- Если вышеуказанные условия не выполняются, то колба будет пытаться вызвать Response.force_type быть превращена в такой запрос
-
1 из колбы импорта колбы, Response, jsonify 2 3 приложения = Колба ( __name__ ) 4 5 6 класса JsonResponse (ответ): 7 @classmethod 8 Защиты force_type (ЦБС, ответ, Environ = None): 9 , если isinstance (ответ, ДИКТ) : 10 ответа = jsonify (ответ) 11 возврата супер (JsonResponse, ЦБС) .force_type (ответ, Environ) 12 13 14 app.response_class = JsonResponse 15 16 17@ app.route ( ' / ' ) 18 Защиту индекс (): 19 ответ = Ответ (ответ = ' Привет ' , состояние = 200, content_type = ' Текст / HTML, кодировка = UTF-8 ' ) 20 обратного ответа 21 22 23 @ app.route ( ' / JSON ' ) 24 защиту json_test (): 25 возвращение { ' привет ' : ' мир ' } 26 27 28 , если __name__ == ' __main__ ' : 29 app.run ()
-
колба пользовательского возврата классов объектов
- Создайте пользовательский класс объекта должен наследовать класс Response
- Когда вам нужно возвратить оригинал, чтобы встретить флягу не поддерживает возвращение определенного типа данных, необходимо переопределить метод класса force_type
- Ответ затем обрабатывается так, чтобы объект родительского класса для обработки ответа
- Класс приложения, чтобы вернуться, чтобы вернуть пользовательский класс
- Вид возвращаемого значения функции будет автоматически преобразован в объект ответа, логика преобразования Колбу выглядит следующим образом: