Example #1
0
    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))
Example #2
0
File: test.py Project: ja150/python
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))
Example #3
0
def _init():
    ''' 其他模块统一初始化 '''
    search.init()
    assess_student.init()
    path_planning.init()