3

クライアント側のコードは、オブジェクト (POST 要求本文内) またはクエリ文字列 (GET メソッドを使用する場合) を ajax 要求を介して Python cgi スクリプトに送信します。オブジェクト/クエリ文字列パラメーターは

<form> or <isindex>.

標準ライブラリ モジュール (cgi など) を使用して、サーバー側の Python スクリプト内からこれらのパラメータを取得するにはどうすればよいですか?

どうもありがとう

編集:
@codeape : ありがとう、しかし、それは送信されたフォームに対してのみ機能しませんか? 私の場合、フォームは送信されず、非同期リクエストのみが送信されます。
スクリプトを使用すると、フォームが送信されない場合、 len(f.keys()) は 0 を返します! おそらくフォーム送信としてリクエストを再キャストできますが、より良い方法はありますか?

4

3 に答える 3

5

cgi.FieldStorageクラスを使用します。CGIスクリプトの例:

#! /usr/bin/python

import cgi
from os import environ
import cgitb
cgitb.enable()

print "Content-type: text/plain"
print
print "REQUEST_METHOD:", environ["REQUEST_METHOD"]
print "Values:"
f = cgi.FieldStorage()
for k in f.keys():
    print "%s: %s" % (k, f.getfirst(k))
于 2009-01-15T08:19:29.577 に答える
0

codeapeはすでにこれに答えています。念のために言っておきますが、HTTPリクエストの発行方法は完全に直交していることを理解してください。サーバーが取得するのは、HTTPリクエストの期間です。

于 2009-01-15T14:40:54.580 に答える
0

@ codeape@ bruno desthuilliers

実際、cgi.FieldStorage()はパラメーターを取得します。以前に取得した出力は、キーと値のペアとしてではなく、リクエストの本文でパラメーターを文字列(JSON.stringify()オブジェクト)として渡したことが原因であると思われます。
ありがとう

于 2009-01-15T18:59:49.847 に答える