Как можно обрабатывать исключения во всем мире с помощью Flask? Я нашел способы использовать следующие для обработки пользовательского БД взаимодействий:Обработка глобальных исключений Flask
try:
sess.add(cat2)
sess.commit()
except sqlalchemy.exc.IntegrityError, exc:
reason = exc.message
if reason.endswith('is not unique'):
print "%s already exists" % exc.params[0]
sess.rollback()
Проблемы с try
- except
, я должен был бы работать, что каждый аспект моего кода. Я могу найти лучшие способы сделать это для пользовательского кода. Мой вопрос направлен больше к глобальной ловле и обработок для:
apimanager.create_api(
Model,
collection_name="models",
**base_writable_api_settings
)
Я обнаружил, что это apimanager
принимает validation_exceptions
: [ValidationError
], но я не нашел примеры этого используются.
Я по-прежнему хотел бы получить более высокий уровень обработки, который будет влиять на все взаимодействия db с простой концепцией «Если эта ошибка: показать это, если другая ошибка: показать что-то еще», которая просто выполняется во всех взаимодействиях/исключениях автоматически без меня включая его на каждом apimanager
(поместить его в мой base_writable_api_settings
в порядке, я думаю). (IntegrityError
, NameError
, DataError
, DatabaseError
и т.д.)
[Здесь] (http://flask.pocoo.org/docs/0.11/api/#flask.Flask.errorhandler) - соответствующая документация! –
Не мог бы вы сказать мне, как подключить к этому: apimanager.create_api ( модели, COLLECTION_NAME = «модель», ** base_writable_api_settings) В настоящее время моя цель состоит в том, чтобы получить специальное сообщение для: IntegrityError. Это относится ко всем api_managers. 'код base_api_settings = { "exclude_columns": [ 'пароль', 'user.password', 'группы', 'registration_token',«пользователь.registration_token '], "max_results_per_page": 100, "validation_exceptions": [ValidationError] } ' – draxous
Я пробовал это несколько разных способов. Каждый раз, когда я представить дубликат записи я получаю стандарт: { «сообщение»: «IntegrityError» } Вот Pastebin: http://pastebin.com/7Asb08kE – draxous