Browse Source

tornado: Use finish() for asynchronous handler.

INADA Naoki 11 years ago
parent
commit
e49c5e1f00
1 changed files with 7 additions and 6 deletions
  1. 7 6
      tornado/server.py

+ 7 - 6
tornado/server.py

@@ -1,6 +1,7 @@
 import random
 import random
 import sys
 import sys
 
 
+import json
 import motor
 import motor
 import tornado.ioloop
 import tornado.ioloop
 import tornado.web
 import tornado.web
@@ -9,7 +10,9 @@ import tornado.options
 from tornado.options import options
 from tornado.options import options
 import tornado.httpserver
 import tornado.httpserver
 
 
+PY3 = False
 if sys.version_info[0] == 3:
 if sys.version_info[0] == 3:
+    PY3 = True
     xrange = range
     xrange = range
 
 
 tornado.options.define('port', default=8888, type=int, help="Server port")
 tornado.options.define('port', default=8888, type=int, help="Server port")
@@ -40,7 +43,7 @@ class QueryTestHandler(BaseHandler):
             random_id = random.randint(1, 10000)
             random_id = random.randint(1, 10000)
             world = yield gen.Task(db.world.find_one,{"id": random_id}, fields={"_id": 0, "id": 1, "randomNumber": 1})
             world = yield gen.Task(db.world.find_one,{"id": random_id}, fields={"_id": 0, "id": 1, "randomNumber": 1})
             # Get first postion on arguments, and so first postion in mongo return
             # Get first postion on arguments, and so first postion in mongo return
-            world = world[0][0]
+            response = json.dumps(world[0][0])
         else:
         else:
             worlds = []
             worlds = []
             for i in xrange(int(queries)):
             for i in xrange(int(queries)):
@@ -48,11 +51,9 @@ class QueryTestHandler(BaseHandler):
                 world = yield gen.Task(db.world.find_one,{"id": random_id}, fields={"_id": 0, "id": 1, "randomNumber": 1})
                 world = yield gen.Task(db.world.find_one,{"id": random_id}, fields={"_id": 0, "id": 1, "randomNumber": 1})
                 # Get first postion on arguments, and so first postion in mongo return
                 # Get first postion on arguments, and so first postion in mongo return
                 worlds.append(world[0][0])
                 worlds.append(world[0][0])
-
-            worlds = escape.json_encode(worlds)
-            self.set_header("Content-Type", "application/json; charset=UTF-8")
-
-        self.write(worlds if queries > 0 else world)
+            response = json.dumps(worlds)
+        self.set_header("Content-Type", "application/json; charset=UTF-8")
+        self.finish(response)
 
 
 application = tornado.web.Application([
 application = tornado.web.Application([
     (r"/json", JsonSerializeTestHandler),
     (r"/json", JsonSerializeTestHandler),