Example #1
0
 def record(self, data):
     """
     :param data: 记录到数据库里机器的性能数据。
     :param host: 数据库地址
     :param port: 数据库端口
     :return:
     """
     print data
     mongo = Mongo()
     mongo.insert("testfan", "monitor", data)
     mongo.close()
Example #2
0
    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)
Example #3
0
    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)