0

Google App Engine を使用してアプリケーションを開発しており、AJAX 呼び出しを使用して Python スクリプトを実行したいと考えています。スクリプトを取得できますが、実行できません。

ここで提案されているように、WSGI を使用します: How do you execute a server-side Python script using jQuery? . ただし、ページをリダイレクトしたくありません。ページをリダイレクトしないようにするための解決策は、ここで提案されているように AJAX 呼び出しを使用することでした: Run CGI application without redirecting from HTML、および here: Make a tag act like input button

現在、HTML フォームを使用していますが、ページのリダイレクトを停止したいと考えています。

<form action="/token" method="post" >
 <div> "some button code" </div>
 </form>

そのため、代わりにAJAXを使用しようとしましたが、コードを実行せずに返します

$.post('js/mailToken.py', { testdata: 'hello world' },alert("success"));
4

1 に答える 1

2

Python スクリプトを静的ファイルとして表示しようとしています。そのため、アプリ エンジンはコードを実行せずに返しています。

あなたが PHP の世界から来ていると仮定すると、.htacces (Apache サーバー上) で URL 書き換えを行っていない限り、ブラウザーで PHP スクリプトの場所を指定すると、そのスクリプトが実行されます。

App Engine と多くの Python Web フレームワークでは、これは異なる動作をします。特定の URI を特定のスクリプトで指すようにするにapp.yamlは、アプリ ディレクトリ内のファイルを編集します。

デフォルトでは、すべての URI が というスクリプトを指しますmain.py。これは、Google アプリ エンジン ランチャーを使用してアプリを作成するときに生成される app.yaml で定義されます。これが定義されている部分は次のようになります。

handlers:
- url: /
  script: main.py

main.py 内で、URI に基づいてリクエストを処理する方法をさらに指定する必要があります。おそらく、Python 2.5 または 2.7 のどちらを使用しているかに基づいて、webapp または webapp2 フレームワークを使用してこれを行う必要があります。これが完了すると、AJAX 経由であるか、フォームのアクションとしてであるか、直接アクセスするか、リンクをクリックするだけであるかに関係なく、これらの URI に簡単にリクエストを送信できます。

リクエストをさらに処理する方法を理解するために webapp および webapp2 フレームワーク全体を説明することは、おそらくこの回答の範囲を超えています (読み取り: :p と入力するのにうんざりしています)。python 2.5およびpython 2.7のガイド。

于 2012-08-18T12:39:29.410 に答える