2009-06-29 14 views
1

localhost:8080/_ah/adminからアクセスできる対話型コンソールは、App Engineアプリケーションのデバッグに非常に便利です。App Engine対話コンソールのモジュールを自動的にインポート

私はいつも同じモジュールを繰り返しインポートしています。特にモデルです。

私はこれらのモデルを自動的にインポートするために対話型コンソールにパッチを当てる猿を探しました。私は困惑しています。理想的には、私はアプリからそれをやることができたので、SDKをアップデートするたびにパッチを再適用する必要はありません。

私は調査し、うまくいけば答えを見つけます、これを達成する方法についてあなたが考えているかどうか教えてください。

答えて

1

これはあなたのためのものであるかどうかはわかりませんが、対話型コンソールページのhtmlテンプレートを編集して、異なるデフォルトテキストを入力することができます。これは、すべてのアプリに適用され、あなたが述べたように、あなたがそれでSDKが更新されるたびにへまをする必要があると思います

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

:次の場所にあります。

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. はあなたの新しいモジュールにしたい任意の追加のモジュールとクラス
  2. にインポートし、インポート独自のモジュールを作成し、サブクラスInteractivePageHandlerとInteractiveExecuteHandler
  3. - 彼らは自動的にそれらによって実行されます任意のコードのためにインポートされます。
  4. これらのクラスのgenerate()関数をBaseRequestHandlerからオーバーライドして、独自のモジュールの下の 'templates'サブディレクトリの代わりにgoogle/appengine/ext/admin/templatesのテンプレートを探します。
+0

これはアプリごとに機能するようには見えません。私は理想的には、単一のアプリケーションの範囲内でコードを保持することによってこれを行う方法を探していました。 – jamtoday

+0

「アプリごとに」とはどういう意味ですか?私が上に概説しているのは、あなたのアプリのためのいくつかの余分なコードを書くことだけです - それはSDKの変更を伴わない。 –

+0

申し訳ありませんが、私はこのアプローチの要点を誤解しました。私はこの仕事を得るときに私は更新を投稿します... – jamtoday

3

最後に私が尋ねた機能を提供するautoexec.py付属のApp Engine Consoleプロジェクトを使用しました。

+0

こんにちは、jamtoday。 Googleアラートからこの質問が見つかりました。私はApp Engine Consoleの作者です。私は休暇中に大きなアップグレードを検討しているので、あなたが知っておく必要があるバグや機能があれば教えてください! – JasonSmith

関連する問題