2010-09-12 11 views
1

L'itinéraire d'index fonctionne quand je vais à/home/indexPourquoi mon itinéraire ne fonctionne-t-il pas?

Mais ça ne marche pas pourquoi je tape/home/test

Quel est le problème ici, très confus!

exploitation forestière d'importation

de pylones demande d'importation, la réponse, session, tmpl_context comme c, url de pylons.controllers.util import Abandonner, rediriger

de BaseController import helloworld.lib.base, rendre

log = logging.getLogger (nom)

classe HelloController (BaseController):

def index(self): 
    # Return a rendered template 
    #return render('/hello.mako') 
    # or, return a string 
    return 'Hello World from index() action!' 


def test(self): 
return 'blah' 

Je reçois cette erreur:

WebError Traceback: 
⇝ NotImplementedError: Action u'test' is not implemented 
View as: Interactive | Text | XML (full) 
URL: http://127.0.0.1:5000/hello/test 
Module weberror.evalexception:431 in respond   view 
>> app_iter = self.application(environ, detect_start_response) 
Module beaker.middleware:152 in __call__   view 
>> return self.wrap_app(environ, session_start_response) 
Module routes.middleware:131 in __call__   view 
>> response = self.app(environ, start_response) 
Module pylons.wsgiapp:107 in __call__   view 
>> response = self.dispatch(controller, environ, start_response) 
Module pylons.wsgiapp:312 in dispatch   view 
>> return controller(environ, start_response) 
Module helloworld.lib.base:15 in __call__   view 
>> return WSGIController.__call__(self, environ, start_response) 
Module pylons.controllers.core:211 in __call__   view 
>> response = self._dispatch_call() 
Module pylons.controllers.core:168 in _dispatch_call   view 
>> action) 
NotImplementedError: Action u'test' is not implemented 
+0

Avez-vous redémarré Pylônes? –

+0

oui, plus je charge le serveur avec --reload – Blankman

Répondre

2

Vérifiez votre empreinte. Si def test (self) est sur le même niveau d'indentation que la classe, vous n'obtiendrez pas d'erreur d'indentation.

Ce génère une erreur d'indentation:

class HelloController(BaseController): 
    def index(self): 
     return "hello from index()" 

    def test(self): 
     return "blah" 

Cela ne veut pas:

class HelloController(BaseController): 
    def index(self): 
     return "hello from index()" 

def test(self): 
    return "blah" 
+0

intéressant, mais pourquoi 'def index (..)' fonctionne? c'est à une indentation différente ?? – Blankman

+0

à la fois ma ligne de def, l'index fonctionne l'autre ne fonctionne pas. – Blankman

+0

Vous pourriez mélanger des espaces et des onglets. Si vous avez créé votre contrôleur avec "paster controller hello" la méthode d'index sera automatiquement créée en utilisant 4 espaces pour l'indentation. Votre éditeur peut être configuré pour insérer un caractère de tabulation de 4 espaces en largeur. Donc, même si tout est aligné, une méthode est indentée avec des espaces, l'autre avec une tabulation. – cmoylan