天天看點

python tornado_在python中配置tornado服務

import tornado.httpserver

import tornado.options

import tornado.web

from tornado.options import define, options

from data_util import UtilsLTPTranslate

define("port", default=8005, help="run on the given port", type=int)

啟動的服務

class HandlerLTPTranslate(tornado.web.RequestHandler):

def post(self):

self.set_header(‘Access-Control-Allow-Origin‘, ‘*‘)

self.set_header(‘Access-Control-Allow-Methods‘, ‘POST, GET, OPTIONS‘)

self.api_response()

def api_response(self):

post_data = {}

response = {}

data=[]

try:

for key in self.request.arguments:

post_data[key] = self.get_arguments(key)[0]

text = post_data["text"]

if post_data["flag"] == "companyName":

data.append(self.application.UtilsLTPTranslate.getEnCompanyName(text))

elif post_data["flag"] == "address":

data.append(self.application.UtilsLTPTranslate.getEnAddress_2(text))

elif post_data["flag"] != "common" :

data.append(self.application.UtilsLTPTranslate.zh2en(text))

else:

data.append(self.application.UtilsLTPTranslate.zh2en(text))

response["data"] = data

except:

response["data"] = data

self.finish(json.dumps(response, ensure_ascii=False))

為了防止重複加載資料模型,需要初始化

class Application(tornado.web.Application):

def init(self):

self.UtilsLTPTranslate = UtilsLTPTranslate()

handlers = [(r"/LTPTranslate", HandlerLTPTranslate)]

tornado.web.Application.init(self,handlers,)

def forService():

print("啟動.............................")

tornado.options.parse_command_line()

http_server = tornado.httpserver.HTTPServer(Application())

http_server.bind(options.port)

http_server.start(0)

tornado.ioloop.IOLoop.instance().start()

if name == ‘main‘:

forService() #啟動服務