У меня есть функция render()
, которая не использует отложенные функции, поскольку она быстрее возвращает ответ напрямую. Я не хочу напрямую возвращать bytestring, но сначала пишу его в объект запроса, завершаю его вручную, а затем возвращаю. Важно, чтобы я мог использовать оператор return во втором фрагменте кода.Twisted: возврат из запроса блокировки
def render(self, request)
return b"not authorized"
должен стать (если это нормально, чтобы сделать так)
def render(self, request)
request.write(b"not authorized")
request.finish()
return NOT_DONE_YET
Я заметил, что когда я вернусь ничего, кроме NOT_DONE_YET
я получаю exceptions.RuntimeError: Request.write called on a request after Request.finish was called.
Есть действительны examples, которые используют очень похожую последовательность:
request.redirect(...)
request.finish()
return NOT_DONE_YET
Итак, можно ли использовать комбинацию write
/finished
/NOT_DONE_YET
?