def get(self, request_type): service_logger.info('request uri: %s' % urllib.parse.unquote(self.request.uri)) service_logger.info('request IP: %s' % self.request.remote_ip) self.set_header('Access-Control-Allow-Origin','*') flag = True error_msg = '' # token验证 if 'token' in self.request.query_arguments: token_requset = convert_to_str(self.request.query_arguments['token'][0]) service_logger.info('request token :%s' % token_requset) token_server = md5_token(token_requset) if not token_server: # 发送的token跟服务器生成的token不一致 service_logger.info('invalid token') self.finish(json.dumps(exit_error_func(4, 'token验证失败'), ensure_ascii=False, indent=4)) if request_type == 'reload': try: if 'search_flag' in self.request.query_arguments: search_flag = self.request.query_arguments['search_flag'][0] search.init(convert_to_str(search_flag)) assess_student.init() path_planning.init() else: _init() service_logger.info('service reload success.') self.finish('reloaded.') except: service_logger.info('service reload success.') self.finish('failed.') elif request_type == 'school_search': if 'condition' in self.request.query_arguments: try: condition = self.request.query_arguments['condition'][0] condition = convert_to_str(condition) condition = condition.replace(' ', '') except Exception as e: service_logger.error(e) error_msg = exit_error_func(1, 'condition') flag = False else: error_msg = exit_error_func(5, 'condition是必选参数') flag = False if 'area' in self.request.query_arguments: try: area = self.request.query_arguments['area'][0] area = convert_to_str(area) area = area.strip() if len(area) < 1: area = None except Exception as e: service_logger.error(e) error_msg = exit_error_func(1, 'area') flag = False area = None else: area = None if 'country' in self.request.query_arguments: try: country = self.request.query_arguments['country'][0] country = convert_to_str(country) country = country.strip() if len(country) < 1: country = None except Exception as e: service_logger.error(e) error_msg = exit_error_func(1, 'country') flag = False country = None else: country = None if 'major' in self.request.query_arguments: try: major = self.request.query_arguments['major'][0] major = convert_to_str(major) major = major.strip() if len(major) < 1: major = None except Exception as e: service_logger.error(e) error_msg = exit_error_func(1, 'major') flag = False major = None else: major= None if flag: self.finish(json.dumps(search.search_school(condition=condition, major=major, area=area, country=country), ensure_ascii=False, indent=4)) else: self.finish(error_msg) elif request_type == 'assess_student': if 'condition' in self.request.query_arguments: try: condition = json.loads(convert_to_str(self.request.query_arguments['condition'][0])) except Exception as e: service_logger.error(e) error_msg = exit_error_func(1, 'condition格式转换出错') flag = False else: error_msg = exit_error_func(5, 'condition为必选参数') flag = False if flag: assess_student.init() self.finish(json.dumps(assess_student.assess(condition), ensure_ascii=False, indent=4)) else: self.finish(error_msg) elif request_type == 'path_planning': if 'condition' in self.request.query_arguments: try: condition = json.loads(convert_to_str(self.request.query_arguments['condition'][0])) except Exception as e: service_logger.error(e) error_msg = exit_error_func(1, 'condition格式转换出错') flag = False else: error_msg = exit_error_func(5, 'condition为必选参数') flag = False if 'size' in self.request.query_arguments: size = self.request.query_arguments['size'][0] else: size = None if flag: self.finish(json.dumps(path_planning.schedule(condition=condition, size=size), ensure_ascii=False, indent=4)) else: self.finish(error_msg) else: service_logger.info('invalid request method.') self.finish(exit_error_func(7, request_type))
import json import assess_student from assess_student import assess, init import path_planning from path_planning import schedule, init import db_util from db_util import get_connection from common_func import md5_token import search from search import search_school, init import hashlib import time import json import logging student_info = {"major":"cs","grade":"1","target":"1","data":{"gpa":{"score":"3", "trend":"", "school":""},"gmat":{"total":"", "writing":"", "verbal":"", "maths":""},"gre":{"total":"", "writing":"", "verbal":"", "maths":""},"toefl":{"total":"", "writing":"", "reading":"", "listening":"", "speaking":""},"ielts":{"total":"", "writing":"", "reading":"","listening":"", "speaking":""},"research":{"duration":"4", "level":"1", "achievement":"1", "recommendation":"1"},"work":{"duration":"1", "level":"1", "recommendation":"1"},"internship":{"duration":"1", "level":"1", "recommendation":"1"},"reletter":{"level":["1","2","3"]},"activity":{"duration":"1", "type":"1"},"credential":{"level":"2"},"competition":{"level":"2"},"scholarship":{"level":"2"}}} assess_student.init() path_planning.init() for each in path_planning.PRODUCT_RECOMMEND.keys(): if each == '竞赛': print(len(path_planning.PRODUCT_RECOMMEND[each])) #print(json.dumps(path_planning.schedule(student_info, size=1), ensure_ascii=False, indent=4)) #print(json.dumps(assess_student.assess(student_info), ensure_ascii=False, indent=4)) #search.init() #print(json.dumps(search.search_school(condition='a', country=None), ensure_ascii=False, indent=4))
def _init(): ''' 其他模块统一初始化 ''' search.init() assess_student.init() path_planning.init()