2010-02-10 5 views
1

내 자신의 App Engine 응용 프로그램에서 브라우저에서 파이썬 해석기 >>에 액세스하는 것을 시뮬레이션하여 새 코드를 엉망으로 만들고 싶었습니다. 이 응용 프로그램을 embeddedding하여 브라우저 창 ->http://shell.appspot.com/.링크가있는 Probem 내 응용 프로그램 내에 응용 프로그램 엔진의 쉘 응용 프로그램을 포함하여 코딩하는 방법

하나 그래서 난 내 자신의 응용 프로그램 디렉토리에 쉘 응용 프로그램에서 키 파일과 폴더를 이동 http://code.google.com/p/google-app-engine-samples/downloads/detail?name=shell_20091112.tar.gz&can=2&q=

에서 shell_20091112.tar.gz를 얻을 수 있습니다. 그래서, 나는 SDK에서 내 응용 프로그램을 실행하면 나는 내 응용 프로그램에서 브라우저에서

http://dwms.appspot.com/shell 

에서 쉘 응용 프로그램을 볼 수 있지만 내가 공격 후 다음 아무 일도 발생하지 뭔가 말을 >>a=1를 ... 작성 후 '입력' 양식에서 내 애플 리케이션에 내 처리기 링크가 잘못되었다고 가정하십니까? (미안 내가 전문 용어를 잘못 읽는다면 나는 이런 종류의 웹 개발자 코딩에 익숙하지 않다). 아래처럼 보이는

양식 I는 shell.html 내에서 정보를 수신 할 수 있겠 : 그래서 문제가 내 애플 점이다 생각하고

<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> 

서버가 클라이언트에서 'shell.do'을 얻을 때 아무 응답하지

,691 : 때문에 나는 내 응용 프로그램의 디렉토리에 웹을 복사 이전 shell.py에 내가 만든 또는하거나 잘못했다 didnt가 변경 ....

의 나는 main() 기능의 모든 라인을 주석 처리

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


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

하고 다음과 같이 main.py 내 자신을 그와 유사한 링크를 추가하여 연결 또는 배관 정보를 교환 :

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() 

다시 - 그래서 지금 문제는 내가 갈 때 나는 쉘 응용 프로그램을 볼 수 있다는 것입니다

http://dwms.appspot.com/shell 

및 입력

>> a=10 

하지만 나는 경우 >>a=10

후 양식에 문을 입력 한 후 힝는 나 또한 내 응용 프로그램의 app.yaml에 나는 이전 쉘의 응용 프로그램 핸들러 app.yaml에서 복사 몇 줄을 주석 것을 알 수 아래는 ... 관련이 발생 .. 참고 : 아래 라인을 주석 처리하여 실험 한 결과 쉘에서 내 응용 프로그램에서 쉘이 작동하지 않는 데 아무런 차이가 없었습니다 ... 아래 주석에 대한 이유는 쉘이 무슨 일이 일어나고 있는지를 알기 위해 필요할 것이라고 생각했기 때문입니다 셸이 실행되는 곳이 아닌 전체 앱의 모든 전역 변수가 포함되어 있습니까? (? 내가 이것에 대해 혼동 될 수 있습니다)

내 애플리케이션 제목은 다음과 같습니다 :

은 긴 설명은
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 

죄송은 ... 어떤 도움을 크게 감사합니다!

내 자신의 질문에 대한 답변은

답변

관련 문제