2009-06-29 4 views
1

localhost : 8080/_ah/admin에서 액세스 할 수있는 대화 형 콘솔은 App Engine 앱 디버깅에 매우 유용합니다.App Engine 대화 형 콘솔 용 모듈을 자동으로 가져옵니다.

항상 동일한 모듈을 반복해서 가져 오는 것을 느낍니다. 특히 모델입니다.

나는 이러한 모델을 자동으로 가져 오기 위해 대화 형 콘솔을 패치하는 원숭이를 들여다 보았다. 이상적으로는 SDK에서 업데이트 할 때마다 패치를 다시 적용 할 필요가 없도록 앱에서 수행 할 수 있습니다.

답을 찾고 잘하면 답변을 찾으십시오. 수행 방법에 대한 아이디어가 있으면 알려 주시기 바랍니다.

답변

1

이것이 무엇인지 전혀 모르겠지만 대화 형 콘솔 페이지의 html 템플릿을 편집하여 다른 기본 텍스트를 입력 할 수 있습니다. 모든 응용 프로그램에 적용됩니다

./google_appengine/google/appengine/ext/admin/templates/interactive.html

이, 당신이 언급 한 바와 같이 당신은 그것으로 SDK가 업데이트 때마다 노는해야 할 것 :에있는 것.

3

좋은 질문! 대화 형 콘솔의 관련 코드는 InteractiveExecuteHandler에서 google/appengine/ext/admin/init.py:188입니다. . 특히,이 같은 코드를 실행하십시오 전역, 그것은 단순히 자신의 수입을 제공하기 위해, 그래서 그것에서의 모듈의 전역을 사용하는

try: 
    compiled_code = compile(code, '<string>', 'exec') 
    exec(compiled_code, globals()) 
    except Exception, e: 
    traceback.print_exc(file=results_io) 

주, 당신이해야 할 모든이있다 :

  1. 당신의 새로운 모듈에 InteractivePageHandler 및 InteractiveExecuteHandler
  2. 가져 오기 당신이 원하는 추가 모듈과 클래스를 가져오고 하위 클래스 자신의 모듈 만들기 - 그들은 자동으로에 의해 실행 상관 없음 코드를 가져올 것입니다.
  3. 해당 클래스의 BaseRequestHandler에서 generate() 함수를 재정 의하여 사용자 모듈의 '템플릿'하위 디렉토리 대신 google/appengine/ext/admin/templates에서 템플릿을 찾습니다.
+0

이것은 앱별로 작동하지 않는 것처럼 보입니다. 필자는 코드를 단일 응용 프로그램의 범위 내에서 유지함으로써이 작업을 수행하는 방법을 찾고있었습니다. – jamtoday

+0

"앱별로"는 무엇을 의미합니까? 위의 개요는 앱을위한 추가 코드를 작성하는 것으로 만 구성되어 있습니다. SDK 수정과 관련이 없습니다. –

+0

사과, 나는이 접근법의 요지를 오해했습니다. 이 작업을 할 때 업데이트를 게시 할 것입니다 ... – jamtoday

3

나는 내가 물었던 기능을 제공하는 autoexec.py와 함께 제공되는 App Engine Console 프로젝트를 사용했다.

+0

안녕하세요, jamtoday. 방금 Google 알리미에서이 질문을 발견했습니다. 저는 App Engine Console의 저자입니다. 나는 휴일에 대한 주요 업그레이 드를 고려 중이므로 내가 알아야 할 버그 나 기능이 있다면 알려주십시오! – JasonSmith

관련 문제