2016-07-06 5 views
2

J'essaie d'exécuter un extrait de code dans le moteur de l'application goold et de trouver un problème étrange. Quand je lance l'extrait de code ci-dessous, il signaler l'erreur:webapp2 http erreur 500

localhost is currently unable to handle this request.HTTP ERROR 500

import webapp2 
import cgi 

form=""" 
<!DOCTYPE html> 
<html><head> 
    <title>Unit 2 Rot 13</title> 
    </head>  
    <body> 
    <h2>Enter some text to ROT13:</h2> 
    <form method="post"> 
     <textarea name="text" style="height: 100px; width: 400px;">{{text}}</textarea> 
     <br> 
     <input type="submit" value="Submit Query"> 
    </form> 
</body></html>""" 

class MainHandler(webapp2.RequestHandler): 
    def get(self): 
     self.response.out.write(form) 
    def post(self): 
     text = self.request.get('text') 
     self.response.out.write(self.request) 

app = webapp2.WSGIApplication([ 
    ('/', MainHandler)], debug=True) 

Mais lorsque je supprime un code de ligne dans ma méthode post, cela fonctionne bien. La partie supprimée: text = self.request.get('text') Quelqu'un pourrait-il m'aider avec ça?

+0

Autre qu'une erreur de retrait sur la première ligne (qui présenterait un autre problème), je ne vois rien de mal avec votre code, et il fonctionne très bien lors de l'exécution avec 'paste.httpserver'. Etes-vous sûr d'avoir publié le même code à l'origine du problème? – mhawke

+0

@mhawke Oui, c'est le même code. Est-ce que paste.httpserver est similaire à Google App Engine? –

+1

'paste.httpserver' vous permet d'exécuter votre application' webapp2' [en dehors du moteur de l'application.] (Https://webapp2.readthedocs.io/en/latest/tutorials/quickstart.nogae.html#quick-start-to -use-webapp2-outside-of-app-engine) Vous pouvez essayer votre code en dehors du moteur de l'application. Regardez également les journaux de l'application: une erreur 500 est généralement le résultat d'une exception non gérée dans votre code ou d'un échec d'exécution de l'application. – mhawke

Répondre

1

Supprimez d'abord l'espace de la première ligne.

Ensuite, affichez le "texte" que vous obtenez de l'utilisateur.

text = self.request.get('text') 
self.response.out.write(text) 
+0

Je l'ai essayé mais ça a quand même échoué ... D'autres idées? –

+1

Je l'exécute sur mon GAE local et ça fonctionne bien. –