这是龙卷风中的ColsHandler。
class ColsHandler(tornado.web.RequestHandler):
def get(self):
try:
x = int(self.get_argument('x'))
y = int(self.get_argument('y'))
v = int(self.get_argument('v'))
crl = int(self.get_argument('crl'))
crl_type = int(self.get_argument('crl_type'))
DB.update_cols(x,y,v,crl,crl_type)
data = DB.get_data()
self.write(json.dumps({'success': 1, 'data': data}))
except Exception as e:
raise e
self.write(json.dumps({'success': 0}))
我收到参数并尝试处理它以便使用sqlite3提取适当的结果。加载首页时,此查询很重要。
def get_data(self):
cols = self.get_cols()
col_type = self.get_cols_type()
x = cols['xs'][cols['x']] #Customer_type
y = cols['ys'][cols['y']] #Region
v = cols['vs'][cols['v']] #Year
crl_x = col_type['crl'][col_type['crl_x']] #Corporate
crl_y = col_type['crl_type'][col_type['crl_y']] #Belgium
conn = sqlite3.connect('test.db')
cur = conn.cursor()
cur.execute("""
SELECT %s, %s, SUM( %s )
FROM data
GROUP BY %s , %s
""" % ( x, y, v, x, y))
data = {'Total': 0}
rows = cur.fetchall()
for row in rows:
x = row[0]
y = row[1]
data['Total']+=row[2]
data[x][y]=row[2]
return data
我需要另一个查询来提取详细信息中的不同结果。所以我写了这个查询。
cur.execute("""
SELECT %s, %s, %s, %s SUM( %s )
FROM data
GROUP BY %s , %s, %s, %s
""" % ( x, y, crl_x, crl_y, v, x, y, crl_x, crl_y))
此查询结果对浏览器也很重要。因为我必须在加载文件时获取所有数据。
但是我不确定如何在一个get_data()函数中处理两个查询,因为我用cur.execute实现了查询。 我想知道我是否可以使用cur.execute两次。我认为那是错的。 那么如何实现两个查询并将其作为一个数据 参数获取并将它发送到浏览器?