Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 9, 2007 12:49:24

qoq
От:
Зарегистрирован: 2007-03-29
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Response в 0.9.6.1

Вроде как с версии 0.9.6.1 отменили Response и render_response.
Теперь в контроллере вместо:
return Response (“Hello world!”)
можно писать просто:
return “Hello world!”

Это конечно круто…. Только вот раньше Response был объект и имел атрибуты (status например)… И вся документация к Pylons так или иначе завязана на этом объекте. Как теперь быть? Или я чего то недопонял?



Офлайн

#2 Дек. 9, 2007 12:53:32

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Response в 0.9.6.1

One of the bigger changes in 0.9.6 is the new way to return responses (Note that returning Response objects is still allowed, but is being phased out). A global response object is now made available which can track cookies, headers, and the status code to return to clients, as well as content. This means your controller actions only need to return content, such as a string or generator.



Отредактировано (Дек. 9, 2007 12:54:38)

Офлайн

#3 Дек. 9, 2007 14:05:28

qoq
От:
Зарегистрирован: 2007-03-29
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Response в 0.9.6.1

Спасибо. Это я читал. Только не понял, как мне тогда переделать следующий код:
def private(self):
if request.environ.get(“REMOTE_USER”):
return Response(“You are authenticated!”)
else:
response = Response(“You are not authenticated”)
response.status = “401 Not authenticated”
return response


Мне надо отдать в прослойку (авторизация через Authkit) статус 401. Чтобы вылезло сообщение и форма входа.
Можно конечно тупо:
abort(401) . Но тогда сообщения не будет.

Как вообще по-граммотнее сделать Авторизацию-Аутентификацию? В доках к AutKit почти всё через Response :(



Офлайн

#4 Дек. 9, 2007 14:14:40

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Response в 0.9.6.1

qoq
Спасибо. Это я читал.
Не верится, если честно:)
qoq
Только не понял, как мне тогда переделать следующий код:
1. можно как и раньше возвращать response, но не желательно
2. теперь response глобальный и его не надо создавать самому
Вывод:
def private(self):
if request.environ.get("REMOTE_USER"):
return "You are authenticated!"
else:
response.status = "401 Not authenticated"
return "You are not authenticated"
И всё это там написано и я даже выделил жирным шрифтом:)



Отредактировано (Июль 25, 2008 09:57:18)

Офлайн

#5 Дек. 9, 2007 14:56:12

qoq
От:
Зарегистрирован: 2007-03-29
Сообщения: 13
Репутация: +  0  -
Профиль   Отправить e-mail  

Response в 0.9.6.1

Daevaorn
1. можно как и раньше возвращать response, но не желательно
Так про то и разговор. Сегодня нежелательно, а завтра вообще отрубят. Как тогда делать, если не через response, который через всё проходит красной нитью?



Офлайн

#6 Дек. 9, 2007 14:59:03

Александр Кошелев
От: Москва
Зарегистрирован: 2007-02-03
Сообщения: 1724
Репутация: +  2  -
Профиль   Отправить e-mail  

Response в 0.9.6.1

qoq
Как тогда делать, если не через response, который через всё проходит красной нитью?
я написал.



Офлайн

#7 Июль 24, 2008 23:30:10

Naota
От:
Зарегистрирован: 2007-06-04
Сообщения: 197
Репутация: +  0  -
Профиль   Отправить e-mail  

Response в 0.9.6.1

Хочу реализовать Ajax запрос с возможностью показать пользователю, что запрос не выполнен.
здесь описано как вставить в шаблон ajax код.
Пример:

link_to_remote(word,
dict(url=url(action="action"),
404="alert('Not found...? Wrong URL...?')",
failure="alert('HTTP Error ' + request.status + '!')"))
Но я не могу понять, как реализовать провалившийся запрос. Как я понял, нужно дать статус не 2XX в response.status. Я пробовал цифирки туда писать и текст. Не работает. Но работает abort(401) к примеру. Сообщение о провалившимся запросе вылазит, НО как нажимаешь OK, сразу на странице появляется 401 ответ приложения, с описанием ошибки и всякой всячиной. Как же сделать все нормально?



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version