예제 #1
0
파일: app.py 프로젝트: xiaocaipi/python
    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'))
예제 #2
0
 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'))
예제 #3
0
파일: app.py 프로젝트: xiaocaipi/python
 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'))
예제 #4
0
파일: app.py 프로젝트: jatter/PSpider
 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'))