2010-01-03 12 views
1

Par exemple je veux visiter http://localhost:8080/?var=val ou similaire avec le POST, mais je reçois une erreur de 500 serveur:Possible d'envoyer des variables à la page d'index dans CherryPy?

500 Internal Server Error

The server encountered an unexpected condition which prevented it from fulfilling the request.

 
Traceback (most recent call last): 
File "c:\python26\lib\site-packages\cherrypy\_cprequest.py", line 606, in respond 
    cherrypy.response.body = self.handler() 
File "c:\python26\lib\site-packages\cherrypy\_cpdispatch.py", line 25, in __call__ 
    return self.callable(*self.args, **self.kwargs) 
TypeError: index() takes no arguments (1 given) 

Powered by CherryPy 3.1.2

+1

Alors, comment avez-vous le code votre fonction 'index'? Le message d'erreur indique que vous ne lui avez pas permis de prendre des arguments, mais il en a reçu un ('index' est probablement la fonction servant l'URL" root ", par analogie au fichier' index.html' qui est généralement récupéré pour servir " root "pour les requêtes statiques). –

+0

J'ai compris ce que je faisais de mal, était une erreur de logique que j'ai attribuée à tort à mon propre malentendu de la bibliothèque cherrypy. – tehryan

+0

@tehryan Hey vous êtes les bienvenus et encouragés à partager comment vous avez résolu le problème dans une réponse - alors d'autres personnes qui ont le même problème peuvent voir comment le résoudre :) – culix

Répondre

1

Il est certainement possible.

est un exemple ici (adapté de the CherryPy tutorial):

<form action="indexPostHandler" method="post"> 
    <p>Enter a value:</p> 
    <input type="text" name="val" value=""/> 
    <p><input type="submit" value="Login"/></p> 
</form> 

Et, dans l'index, vous pouvez utiliser quelque chose comme ce qui suit pour traiter la demande:

class Root: 
    # create form here 
    def indexPostHandler(self, val=None): 
     # do something with val here 
     ...