Эквивалент PHP "echo something; exit();" с Python/Django?

Иногда лучший способ отладить что-то - напечатать некоторые вещи на странице и exit(), как я могу это сделать на сайте Python/Django?

например. в PHP:

echo $var;
exit();

Спасибо

Ответы

Ответ 1

Поместите это в свою функцию просмотра:

from django.http import HttpResponse
return HttpResponse(str(var))

Ответ 2

Я просто хотел дать альтернативный ответ: просто используйте инструкции print и откройте свой сайт django с помощью python manage.py runserver

В этом случае операторы print отображаются в вашей оболочке, и ваш сайт продолжает работать, как обычно.

Ответ 3

Если вы используете mod_wsgi, вы можете сказать:

print var
raise SystemExit

Исключение SystemExit фактически не приведет к тому, что весь процесс будет завершен, как обычно, но приведет только к тому, что запрос будет завершен, предполагая, что более высокий код не улавливает его и игнорирует.

Убедитесь, что вы используете mod_wsgi 3.X. Если вы используете более старый mod_wsgi, вам нужно будет сказать:

import sys
print >> sys.stderr
raise SystemExit

Другие серверы WSGI также могут обрабатывать SystemExit в запросе одинаково, скажем, вам нужно будет поэкспериментировать о том, что произойдет, если вы используете другое решение для хостинга.

Для получения дополнительной информации об отладке приложений WSGI читайте:

http://code.google.com/p/modwsgi/wiki/DebuggingTechniques

Ответ 4

Если вы не хотите разбивать mod_wsgi на печать, сделайте это в своем файле wsgi

sys.stdout = sys.stderr

потом будут отправлены на error_log