0

フラスコとpython2.7GAESDKを使用しています。アプリにインタラクティブシェルを含めようとしています。

開発中にGAEAPIとやり取りできるように、次のインタラクティブなPythonシェルをアプリに含めようとしています-http ://code.google.com/p/google-app-engine-samples/source/browse/トランク/シェル/

指示に従って、static/フォルダーとtemplates/フォルダー、およびshell.pyをアプリのルートにコピーしました。

また、URLルートのみをapp.yaml(シェル)に追加しました-

application: myflaskonappengineapp
version: 1
runtime: python27
api_version: 1
threadsafe: false

default_expiration: "5d"

builtins:
- appstats: on
- admin_redirect: on
- deferred: on
- remote_api: on

libraries:
- name: jinja2
  version: "2.6"
- name: markupsafe
  version: "0.15"
- name: lxml
  version: "2.3"
- name: numpy
  version: "1.6.1"
- name: PIL
  version: "1.1.7"
- name: pycrypto
  version: "2.3"
- name: setuptools
  version: "0.6c11"
- name: webapp2
  version: "2.3"
- name: webob
  version: "1.1.1"
- name: yaml
  version: "3.10"

inbound_services:
- warmup

handlers:
- url: /favicon.ico
  static_files: application/static/img/favicon.ico
  upload: application/static/img/favicon.ico

- url: /robots.txt
  static_files: application/static/robots.txt
  upload: application/static/robots.txt

- url: /_gae_mini_profiler/static
  static_dir: packages/flaskext/gae_mini_profiler/static

- url: /static
  static_dir: application/static

#interactive shell
- url: /shell
  script: shell.py

- url: /remote_api
  script: /opt/google_appengine/google/appengine/ext/remote_api/handler.py

- url: .*
  script: application.app

しかし、URL / shellにアクセスしようとすると、404エラーが発生しますか?ルーティング用にもフラスコを構成する必要がありますか?フラスコがshell.pyの代わりにこのURLを処理するのはなぜですか?

4

1 に答える 1

4

URL'/shell'とapp.yamlを処理するようにshell.pyを変更する必要があります。特に、 shell.pyの303行目を編集する必要があります。

から

    [('/', FrontPageHandler),

    [('/shell', FrontPageHandler),

また、app.yamlを次のように更新する必要があります(ワイルドカードを追加):

- url: /shell.*
  script: shell.py

login:adminをシェルハンドラーに追加することを検討してください。そうしないと、世界中のすべての人にシェル機能が開かれます。

于 2012-07-24T05:11:48.687 に答える