2011-07-30 5 views
0

私はPythonとGAEの2日間です。Python(GAE)でのHTML入力配列の解析

私はこのようなHTMLで入力配列を持っている:

<input type="text" name="p_item[]"> 
<input type="text" name="p_item[]"> 
<input type="text" name="p_item[]"> 

私はPythonでの入力を解析したい、と私は働いていないされているこの、しようとしている:

items = self.request.get('p_item') 
for n in range(1,len(items)): 
    self.response.out.write('Item '+n+': '+items[n]) 

をこれを行う正しい方法は何ですか?

+0

P私はGAEを使用したことがありませんが、私はあなたのp_item「配列」の名前値の値をしたい推測しています。たとえば、 'p_item [field1]'や 'p_item [field2]'?今のところ、 'len(items)== 0'という問題があるかもしれないという気持ちがあります。 –

+0

さて、私はこれを動作させましたが、HTMLの角括弧[]を取り除くことによって実現しました。配列を使用せずに、1つのHTMLドキュメントに複数の変数名が存在するだけであれば、これは受け入れられる標準ですか? – Steven

+0

「機能していません」とはどういう意味ですか?予期しない結果が出ますか?間違いはありますか?どれ?どの行?これまでに何を試してみましたか? – dtb

答えて

4
この

<input type="text" name="p_item"> 
<input type="text" name="p_item"> 
<input type="text" name="p_item"> 

にあなたのhtmlを変更し、http://code.google.com/appengine/docs/python/tools/webapp/requestclass.html#Request_get_all

P.S. self.request.get_all()メソッドを使用し

参考のために、GET/POSTデータ用の配列のコンセプトはありません。あなたのフォームは、 '&'で区切られたkey = value文字列に変換されます。

p_item=1&p_item=3&p_item=15 

などです。パラメータが配列かどうかを解釈するのは、Webフレームワークによるものです。

編集:おっと、ちょうどまあ、あなたはすでにこれを考え出したコメントを読む:

0

この種の問題が発生した場合は、デバッグを行うことをおすすめします。シンプルなものを作成し、変数の値を書き出して、各ステップで期待することを確実に得てください。

<form method="get"> 
    <input type="text" name="single_key" /> 
    <input type="text" name="array_key[some_key]" /> 
    <input type="submit" /> 
</form> 

そしてバックエンドで次のPythonを実行しているときに何が起こるかを参照してください:以下のようなものですか

single_value = self.request.get('single_key') 
self.response.out.write(str(single_value)) 

array_value = self.request.get('array_key') 
self.response.out.write(str(array_value)) 

出力に基づいてをあなたが望む結果を得るために何の良いアイデアを持っている必要がありますあなたはまだ特定の動作を理解していない場合、あなたの質問に詳細を追加する方法。