from tornado import gen
from tornado.web import RequestHandler
from tornado.escape import json_decode, json_encode, utf8
import json
class BaseHandler(RequestHandler):
"""解决JS跨域请求问题"""
def set_default_headers(self):
self.set_header('Access-Control-Allow-Origin', '*')
self.set_header('Access-Control-Allow-Methods', 'POST, GET')
self.set_header('Access-Control-Max-Age', 1000)
self.set_header('Access-Control-Allow-Headers', '*')
self.set_header('Content-type', 'application/json')
class IndexHandler(BaseHandler):
"""首页处理Handler"""
def initialize(self, data):
self.data = data
print(self.data)
@gen.coroutine # 使得方法异步处理
def prepare(self):
'''所有请求的初始化执行'''
self.cur = self.application.db.cursor()
def get(self, *args, **kwargs):
print(args)
sql = """
select id, type_name from tb_types;
"""
self.cur.execute(sql)
res = self.cur.fetchall()
result = {
'status': True,
'code': 200,
}
l = list()
for re in res:
ids = re[0]
d = {'id': ids, 'type_name': re[1]}
sql2 = "select id, sectype_name from tb_sectype where types_id=" + str(ids) + ";"
self.cur.execute(sql2)
two = list()
for t in self.cur.fetchall():
two.append({'id': t[0], 'sectype_name': t[1]})
d['two'] = two
l.append(d)
result['result'] = l
self.write(json.dumps(result, ensure_ascii=False))
def post(self, *args, **kwargs):
result = {
"result": 'success',
'status': True,
'code': 200
}
self.write(json_encode(result))
@gen.coroutine # 使得方法异步处理
def on_finish(self):
'''在一个请求结束后被调用'''
self.cur.close()
urls = (
url(r'/(\d*)', IndexHandler, dict(data='user123456'), name='index'),
)