Python CGI возвращает код статуса http, например 403?

Как мой python cgi возвращает определенный код состояния http, например 403 или 418?

Я пробовал очевидное (напечатал "Status: 403 Forbidden" ), но он не работает.

Ответы

Ответ 1

print 'Status: 403 Forbidden'
print

Работает для меня. Однако вам нужен второй отпечаток, поскольку вам нужна двойная строка для завершения заголовков HTTP-ответа. В противном случае ваш веб-сервер может пожаловаться, что вы не отправляете ему полный набор заголовков.

sys.stdout('Status: 403 Forbidden\r\n\r\n')

может быть технически более корректным, согласно RFC (предполагается, что ваш CGI script не работает в текстовом режиме в Windows). Однако оба конца линии работают повсюду.

Ответ 2

Я думаю, вы ищете send_error. Он будет расположен в http.server в py3k.