2013-11-30 7 views
0

Мне нужно вернуть условное содержимое обратно в функцию jQuery getJSON() из сценария Python.Как сделать условный оператор, если во время вызова функции возникает исключение?

является

питон скрипт проверяет, является ли пользователь вошел в систему с:

aaa.require() 

require функция имеет встроенный bottle.redirect при неудаче авторизации, но это просто общается непосредственно в сценарий Python, в то время как мне нужно пройти это сообщение обратно в jQuery.

Существует класс исключений, называемый AuthException, который возникает при сбое авторизации.

Могу ли я сделать что-то вроде:

aaa.require() 
if AuthException: 
    # send something back to jQuery 

Другими словами, это можно сделать условный оператор в зависимости от того возникает исключение во время вызова функции?

+0

Вы используете [пробку] (http://cork.firelet.net/)? –

+0

Да, поэтому классы [здесь] (https://github.com/FedericoCeratto/bottle-cork/blob/master/cork/cork.py#L45) и начинают подниматься [здесь] (https: // github. ком/FedericoCeratto/бутылочная пробка/BLOB/Master/пробка/cork.py # L154). – user1063287

ответ

1

Если вы используете Корк, поймайте исключение AuthException, поднятое только в том случае, если вы не задали ключевое слово fail_redirect; вы можете просто поймать это исключение:

from cork.cork import AuthException 

try: 
    aaa.require() 
except AuthException as ae: 
    # send back a JSON response 
+0

Это имеет смысл, он не работает по назначению (500 на getJSON, но запускает .py-файл с терминала и без ошибок), мой оператор импорта - 'from cork import Cork'. Могу ли я по-прежнему ссылаться на «AuthException» так, как вы продемонстрировали? – user1063287

+0

В [документации] (http://cork.firelet.net/#cork.cork.AuthException) указано, что вам нужно импортировать из 'cork.cork', поэтому с дополнительным импортом да. –

+0

Блестящий, это сработало, спасибо. – user1063287