def record(self, data): """ :param data: 记录到数据库里机器的性能数据。 :param host: 数据库地址 :param port: 数据库端口 :return: """ print data mongo = Mongo() mongo.insert("testfan", "monitor", data) mongo.close()
def get(self): self.set_header("Access-Control-Allow-Origin", "*") enter_func(self) if not set(['id']).issubset(self.request.arguments.keys()): return leave_func(self, 1) question_id = self.request.arguments['id'][0] if not question_id.isdigit(): return leave_func(self, 1) try: mysql = Mysql().get_handle() cursor = mysql.cursor(MySQLdb.cursors.DictCursor) sql = 'SELECT question_type, subject_id, difficulty, question_group FROM entity_question WHERE id = %s' % question_id LOG.info('mysql> %s' % sql) cursor.execute(sql) result = cursor.fetchall() if not result: LOG.error('question_id[%s] nonexistent!' % question_id) return leave_func(self, 2) level_id = result[0]['difficulty'] group_id = result[0]['question_group'] question_type = result[0]['question_type'] subject_id = result[0]['subject_id'] # 获取题目类型 sql = 'SELECT type_id id, name FROM entity_question_type WHERE name = "%s"' % question_type LOG.info('mysql> %s' % sql) cursor.execute(sql) ret = cursor.fetchall() if not ret: LOG.error('invalid question_type[%s] of question_id[%s]!' % (question_type, question_id)) return leave_func(self, 100) question_type = ret[0] # 获取主题 sql = 'SELECT id, SUBSTRING_INDEX(name, "\n", 1) name FROM entity_topic WHERE id IN (SELECT topic_id FROM link_question_topic WHERE question_id = %s)' % question_id LOG.info('mysql> %s' % repr(sql)[1:-1]) cursor.execute(sql) theme_list = list(cursor.fetchall()) # # 获取专题 # sql = 'select id, substring_index(name, "\n", 1) name from entity_seriess where id in (select series_id from link_question_series where question_id = %s)' % question_id # LOG.info('mysql> %s' % repr(sql)[1:-1]) # cursor.execute(sql) # special_list = list(cursor.fetchall()) mongo = Mongo().get_handle() json_body = mongo.resource.mongo_question_json.find_one( {'question_id': int(question_id)}) if not json_body: LOG.error( 'json body of question_id[%s] is nonexistent in MongoDB.' % question_id) return leave_func(self, 2) if 'content' in json_body: json_body = json_body['content'] else: json_body = {} html_body = mongo.resource.mongo_question_html.find_one( {'question_id': int(question_id)}) if not html_body: LOG.error( 'html body of question_id[%s] is nonexistent in MongoDB.' % question_id) return leave_func(self, 2) if 'content' in html_body: html_body = html_body['content'] else: html_body = {} chapter_info = [] sql = 'SELECT chapter_id FROM link_question_chapter WHERE question_id = %s' % question_id LOG.info('mysql> %s' % sql) cursor.execute(sql) ret = cursor.fetchall() if ret: chapter_id = ret[0]['chapter_id'] sql = 'SELECT id, level, parent_id, REPLACE(prefix_name, "\r\n", "") prefix_name, REPLACE(name, "\r\n", "") name FROM entity_teaching_chapter WHERE id = %s' % chapter_id LOG.info('mysql> %s' % repr(sql)[1:-1]) cursor.execute(sql) ret = cursor.fetchall() if not ret: LOG.error('chapter_id[%s] nonexistent!' % chapter_id) else: chapter_id = ret[0]['id'] parent_id = ret[0]['parent_id'] prefix_name = ret[0]['prefix_name'] name = ret[0]['name'] level = ret[0]['level'] chapter_info.insert(0, { 'id': chapter_id, 'prefix': prefix_name, 'name': name }) for i in range(int(level) - 1): sql = 'SELECT id, level, parent_id, REPLACE(prefix_name, "\r\n", "") prefix_name, REPLACE(name, "\r\n", "") name FROM entity_teaching_chapter WHERE id = %s' % parent_id LOG.info('mysql> %s' % repr(sql)[1:-1]) cursor.execute(sql) ret = cursor.fetchall() if not ret: break chapter_id = ret[0]['id'] parent_id = ret[0]['parent_id'] prefix_name = ret[0]['prefix_name'] name = ret[0]['name'] level = ret[0]['level'] chapter_info.insert(0, { 'id': chapter_id, 'prefix': prefix_name, 'name': name }) result = error_process(0) result['json'] = json_body result['html'] = html_body result['type'] = question_type result['topic'] = theme_list result['level'] = level_id result['group'] = group_id result['chapter_info'] = chapter_info mongo.close() cursor.close() mysql.close() leave_func(self, 0) return self.write(json.dumps(result, ensure_ascii=False)) except Exception, e: LOG.error(e) return leave_func(self, 100)
def get(self): self.set_header("Access-Control-Allow-Origin", "*") enter_func(self) if not set(['id']).issubset(self.request.arguments.keys()): return leave_func(self, 1) question_id = self.request.arguments['id'][0] if not question_id.isdigit(): return leave_func(self, 1) try: mysql = Mysql().get_handle() cursor = mysql.cursor(MySQLdb.cursors.DictCursor) sql = 'SELECT question_type, subject_id, difficulty, question_group FROM entity_question WHERE id = %s' % question_id LOG.info('mysql> %s' % sql) cursor.execute(sql) result = cursor.fetchall() if not result: LOG.error('question_id[%s] nonexistent!' % question_id) return leave_func(self, 2) level_id = result[0]['difficulty'] group_id = result[0]['question_group'] question_type = result[0]['question_type'] subject_id = result[0]['subject_id'] # 获取题目类型 sql = 'SELECT type_id id, name FROM entity_question_type WHERE name = "%s"' % question_type LOG.info('mysql> %s' % sql) cursor.execute(sql) ret = cursor.fetchall() if not ret: LOG.error('invalid question_type[%s] of question_id[%s]!' % (question_type, question_id)) return leave_func(self, 100) question_type = ret[0] # 获取主题 sql = 'SELECT id, SUBSTRING_INDEX(name, "\n", 1) name FROM entity_topic WHERE id IN (SELECT topic_id FROM link_question_topic WHERE question_id = %s)' % question_id LOG.info('mysql> %s' % repr(sql)[1:-1]) cursor.execute(sql) theme_list = list(cursor.fetchall()) # # 获取专题 # sql = 'select id, substring_index(name, "\n", 1) name from entity_seriess where id in (select series_id from link_question_series where question_id = %s)' % question_id # LOG.info('mysql> %s' % repr(sql)[1:-1]) # cursor.execute(sql) # special_list = list(cursor.fetchall()) mongo = Mongo().get_handle() json_body = mongo.resource.mongo_question_json.find_one( { 'question_id': int(question_id) } ) if not json_body: LOG.error('json body of question_id[%s] is nonexistent in MongoDB.' % question_id) return leave_func(self, 2) if 'content' in json_body: json_body = json_body['content'] else: json_body = {} html_body = mongo.resource.mongo_question_html.find_one( { 'question_id': int(question_id) } ) if not html_body: LOG.error('html body of question_id[%s] is nonexistent in MongoDB.' % question_id) return leave_func(self, 2) if 'content' in html_body: html_body = html_body['content'] else: html_body = {} chapter_info = [] sql = 'SELECT chapter_id FROM link_question_chapter WHERE question_id = %s' % question_id LOG.info('mysql> %s' % sql) cursor.execute(sql) ret = cursor.fetchall() if ret: chapter_id = ret[0]['chapter_id'] sql = 'SELECT id, level, parent_id, REPLACE(prefix_name, "\r\n", "") prefix_name, REPLACE(name, "\r\n", "") name FROM entity_teaching_chapter WHERE id = %s' % chapter_id LOG.info('mysql> %s' % repr(sql)[1:-1]) cursor.execute(sql) ret = cursor.fetchall() if not ret: LOG.error('chapter_id[%s] nonexistent!' % chapter_id) else: chapter_id = ret[0]['id'] parent_id = ret[0]['parent_id'] prefix_name = ret[0]['prefix_name'] name = ret[0]['name'] level = ret[0]['level'] chapter_info.insert(0, { 'id': chapter_id, 'prefix': prefix_name, 'name': name }) for i in range(int(level) - 1): sql = 'SELECT id, level, parent_id, REPLACE(prefix_name, "\r\n", "") prefix_name, REPLACE(name, "\r\n", "") name FROM entity_teaching_chapter WHERE id = %s' % parent_id LOG.info('mysql> %s' % repr(sql)[1:-1]) cursor.execute(sql) ret = cursor.fetchall() if not ret: break chapter_id = ret[0]['id'] parent_id = ret[0]['parent_id'] prefix_name = ret[0]['prefix_name'] name = ret[0]['name'] level = ret[0]['level'] chapter_info.insert(0, { 'id': chapter_id, 'prefix': prefix_name, 'name': name }) result = error_process(0) result['json'] = json_body result['html'] = html_body result['type'] = question_type result['topic'] = theme_list result['level'] = level_id result['group'] = group_id result['chapter_info'] = chapter_info mongo.close() cursor.close() mysql.close() leave_func(self, 0) return self.write(json.dumps(result, ensure_ascii=False)) except Exception, e: LOG.error(e) return leave_func(self, 100)