我想知道在python中使用龙卷风如何最好地处理JSONp对象, 最好这样做:
class BaseRequest(tornado.web.RequestHandler):
def prepare(self):
self.result = {"success": True};
def finish(self, chunk=None):
self.write(self.result);
tornado.web.RequestHandler.finish(self, chunk);
这似乎是一个坏主意,因为你认为你可以在on_finish()
中做到这一点,对吗?
那么,我应该像上面那样做,还是应该在每个处理程序中write()
?
答案 0 :(得分:4)
您应该覆盖默认的write
方法并执行类似的操作(未经测试):
class YourHandler(tornado.web.RequestHandler):
...
def write(self, stuff):
super(YourHandler, self).write('callback(' + json.dumps(stuff) + ')')
self.set_header('Content-Type', 'application/javascript')
其中stuff
是字典,callback
是jsonp回调名称。
答案 1 :(得分:0)
我这场比赛有点晚了。 RequestHandler.write函数只是在写缓冲区上创建了更多的块,稍后将其作为字符串刷新。
class YourHandler(tornado.web.RequestHandler):
...
def get(self, stuff):
self.write("callbackname(")
self.write(stuff)
self.write(")")