[英]How to correctly end tornado requests?
我正在使用Tornado作為用於發送電子郵件的基本請求的API。 根據發送結果,我想相應地完成請求。
這是我所做的:
def get_routes(tornado_config):
return [
(r"/send", EmailHandler, tornado_config)
]
這是在EmailHandler
內部,結果是發送電子郵件的返回:
if result:
self.set_status(200)
self.finish(json.dumps({"status":"ok", "result":result}))
return ''
else:
self.set_status(500)
self.finish(json.dumps({"status": "error", "result":result }))
return ''
問題是self.set_status (500)
似乎沒有添加500標頭。
其他解決方案是:
if result:
return "ok"
else:
return "Message not sent"
但這並不符合任何標准,因為即使在發送電子郵件失敗時,它也會以json {"status":"success", "data":false}
或類似的名稱返回。
只需write
:
self.write({"status":"ok", "result":result})
而不是self.finish
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.