2010-02-10 1 views
1

Dans mon application App Engine, au niveau du navigateur, je voulais manipuler le nouveau code en simulant l'accès à l'interpréteur python >> dans une fenêtre de navigateur en embarquant cette application ->http://shell.appspot.com/.Probem avec liens Intégration de l'application shell de l'application dans ma propre application, pour coder l'aide

On peut se shell_20091112.tar.gz à http://code.google.com/p/google-app-engine-samples/downloads/detail?name=shell_20091112.tar.gz&can=2&q=

Alors je me suis déplacé les fichiers clés et le dossier de l'application shell dans mon propre répertoire de l'application. Quand je lance mon application à partir du SDK que je peux voir dans le navigateur l'application shell à

http://dwms.appspot.com/shell 

dans mon application, mais après que je touche « Entrée » après avoir écrit quelque chose dire >>a=1 ... rien ne se passe, alors suppose que mon lien de gestionnaire du formulaire à mon application est faux? (désolé si j'obtiens le jargon incorrect je suis très nouveau à ce genre de codage de dev de Web).

La forme que je suis censé être recevoir des informations est à shell.html que l'air comme ci-dessous:

<form id="form" action="shell.do" method="get"> 
    <nobr> 
    <textarea class="prompt" id="caret" readonly="readonly" rows="4" 
      onfocus="document.getElementById('statement').focus()" 
      >&gt;&gt;&gt;</textarea> 
    <textarea class="prompt" name="statement" id="statement" rows="4" 
      onkeypress="return shell.onPromptKeyPress(event);"></textarea> 
    </nobr> 
    <input type="hidden" name="session" value="{{ session }}" /> 
    <input type="submit" style="display: none" /> 
</form> 

donc je pense que le problème est que mon application ne répond lorsque le serveur reçoit 'shell.do' du client en raison des changements que j'ai fait ou didnt font ou ont fait mal ....

sur l'ancien shell.py que j'ai copié sur le web dans le répertoire de mon application, je commentais toutes les lignes de la fonction main():

#def main(): 
    #application = webapp.WSGIApplication(
    #[('/shell', FrontPageHandler), 
    #('/shell/shell.do', StatementHandler)], debug=_DEBUG) 
    #wsgiref.handlers.CGIHandler().run(application) 


if __name__ == '__main__': 
    #main() 

et remplacé les informations de liaison ou de plomberie en ajoutant ces liens semblables à mon main.py comme suit:

application = webapp.WSGIApplication(
            [('/', MainPage), 
      ('/shell',shell.FrontPageHandler), 
             ('shell.do', shell.StatementHandler), 
             ('/sign', Guestbook), 
      ('/zxy/.*', PNGserver) ], 
            debug=True) 


def main(): 
    run_wsgi_app(application) 



if __name__ == "__main__": 
    main() 

à nouveau - donc dès maintenant la question est que je vois une application shell quand je vais

http://dwms.appspot.com/shell 

et le type

>> a=10 

mais pas Hing arrive après que j'entre les déclarations dans la forme après >>a=10

Dans le cas où il est pertinent ... Ci-dessous, vous remarquerez que j'ai aussi commenté quelques lignes que je Copié à partir du vieux gestionnaires d'applications de shell app.yaml dans la app.yaml de mon application ..REMARQUE: Après avoir expérimenté en décommentant les lignes ci-dessous cela n'a fait aucune différence dans la façon dont le shell ne fonctionne pas dans mon application ... La raison pour les commentaires ci-dessous est que je pensais que cela pourrait être nécessaire pour savoir ce qui se passe avec toutes les variables globales dans l'application entière pas seulement où le shell est en cours d'exécution? (? Je pourrais être confus à ce sujet)

Mon app.yaml est ci-dessous:

application: dwms 
version: 1 
runtime: python 
api_version: 1 

handlers: 
- url: /stylesheets 
    static_dir: stylesheets 

- url: /.* 
    script: main.py 

- url: /static 
    static_dir: static 
    expiration: 1d 

- url: /remote_api 
    script: $PYTHON_LIB/google/appengine/ext/remote_api/handler.py 

# if you're adding the shell to your own app, change this regex url to the URL 
# endpoint where you want the shell to run, e.g. /shell . You'll also probably 
# want to add login: admin to restrict to admins only. 
# 
#- url: /shell 
# script: shell.py 

Désolé pour la longue explication ... toute aide est grandement appréciée!

Répondre

Questions connexes