2014-02-04 1 views
0

Я хотел бы призвать к http://localhost:8080/match/123/subtitleCherryPy маршрутизации с использованием внутренней функции

def match(self, dayid): 
    day = dayid 
    day_folder = os.path.join(root_folder,day)      
    #Some logics here 

    @cherrypy.expose 
    def subtitle(self, mid): 
     return "Requesting subtitle for ", mid 

Это не правильный путь? Если нет, то каков правильный способ перезаписи Url?

Я пробовал следующее, но он не работает.

d = cherrypy.dispatch.RoutesDispatcher() 
d.connect('default_route', '', controller=HelloWorld) 
d.connect('subtitle', 'match/{mid}/subtitle', controller=HelloWorld, action='subtitle') 

cherrypy.config.update({{'request.dispatch': d}}) 

ответ

1

Вы можете сделать это с помощью специального диспетчера. Это простой пример, который даст вам представление. Ты был на правильном пути здесь.

import cherrypy 

class my_index_controller: 
     @cherrypy.expose 
     def index(self): 
       return """<h1>WORKS</h1>""" 


class other_controller: 
     @cherrypy.expose 
     def subtitle(self, mid): 
       return """<h1>WORKS2 %s</h1>""" % str(mid) 

controller1 = my_index_controller() 
controller2 = other_controller() 
d = cherrypy.dispatch.RoutesDispatcher() 
d.connect('index', '/', controller=controller1, action='index') 
d.connect('subtitle', '/match/:mid/subtitle', controller=controller2, action='subtitle') 
conf = {'/': {'request.dispatch': d}} 

if __name__=='__main__': 
     cherrypy.quickstart(controller1, '/', config=conf) 
+0

Что делает монстр на самом деле? – cherhan

+0

http://docs.cherrypy.org/stable/concepts/config.html Это объясняет всю концепцию. –

+0

Вам не нужно монтировать перед быстрым стартом. – jwalker

 Смежные вопросы

  • Нет связанных вопросов^_^