def __request(self, path=''): try: if path.count('/') < 2: path = settings.DEFAULT_PATH path_list = path.strip()[1:].split('/', 2) modelName, controllerName = path_list[:2] if len(path_list) > 2: pars = path_list[2] else: pars = '' # print 'pars:', pars if not controllerName: controllerName = 'index' if not modelName or not controllerName: return 'model/controller missing' #动态导入这个模块的类 这里例子是导入 action.index.py 里面的index 类 这里 类名 和模块名一样 moduleList = __import__('action.' + modelName, {}, {}, [modelName]) modelObj = getattr(moduleList, modelName)(pars) if hasattr(modelObj, controllerName): #调用模块里的 类里的方法 这里是 index 类里的 index 方法 result = getattr(modelObj, controllerName)() else: result = 'no controller' return result except Exception, e: traceback.print_exc() debug_info = traceback.format_exc().replace('\n', '<br>') msg = 'Error Message: %s <br> %s' % (e.message, debug_info) from action.base import base as baseAction baseObj = baseAction() if e.message == 'db not exists': return baseObj.error('尚未安装', baseObj.makeUrl('install')) return baseObj.error(msg, baseObj.makeUrl('index'))
def __request(self, path=''): try: libName = 'action' controllerName = 'index' if path.count('/') < 2: path = settings.DEFAULT_PATH if path.count('/') == 2: modelName, controllerName = path.strip()[1:].split('/', 1) else: libName, modelName, controllerName = path.strip()[1:].split('/', 2) if not modelName: return 'controller missing' moduleList = __import__(libName + '.' + modelName, {}, {}, [modelName]) modelObj = getattr(moduleList, modelName)() if hasattr(modelObj, controllerName): result = getattr(modelObj, controllerName)() else: result = 'no such controller' return result except Exception ,e: from action.base import base as baseAction baseObj=baseAction() if e.message == 'db not exists' : return baseObj.error('To be installed',baseObj.makeUrl('install')) return baseObj.error(e.message,baseObj.makeUrl('index'))
def __request(self, path=''): try: if path.count('/') < 2: path = settings.DEFAULT_PATH path_list = path.strip()[1:].split('/', 2) modelName, controllerName = path_list[:2] if len(path_list)>2: pars = path_list[2] else: pars = '' # print 'pars:', pars if not controllerName: controllerName = 'index' if not modelName or not controllerName: return 'model/controller missing' #动态导入这个模块的类 这里例子是导入 action.index.py 里面的index 类 这里 类名 和模块名一样 moduleList = __import__('action.' + modelName, {}, {}, [modelName]) modelObj = getattr(moduleList, modelName)(pars) if hasattr(modelObj, controllerName): #调用模块里的 类里的方法 这里是 index 类里的 index 方法 result = getattr(modelObj, controllerName)() else: result = 'no controller' return result except Exception ,e: traceback.print_exc() debug_info = traceback.format_exc().replace('\n', '<br>') msg = 'Error Message: %s <br> %s' % (e.message, debug_info) from action.base import base as baseAction baseObj=baseAction() if e.message == 'db not exists' : return baseObj.error('尚未安装',baseObj.makeUrl('install')) return baseObj.error(msg,baseObj.makeUrl('index'))
def __request(self, path=''): try: if path.count('/') < 2: path = settings.DEFAULT_PATH modelName, controllerName = path.strip()[1:].split('/', 1) if not controllerName: controllerName = 'index' if not modelName or not controllerName: return 'model/controller missing' moduleList = __import__('action.' + modelName, {}, {}, [modelName]) modelObj = getattr(moduleList, modelName)() print modelObj print controllerName print hasattr(modelObj, controllerName) if hasattr(modelObj, controllerName): result = getattr(modelObj, controllerName)() else: result = 'no controller' return result except Exception ,e: from action.base import base as baseAction baseObj=baseAction() if e.message == 'db not exists' : return baseObj.error('尚未安装',baseObj.makeUrl('install')) return baseObj.error(e.message,baseObj.makeUrl('index'))