製作・改造なんでもやっちゃう広くて浅い活動日誌

2017/06123456789101112131415161718192021222324252627282930312017/08

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
Pythonを用いたCGIにGetメソッドを使ってデータを渡します。
Getメソッドというのは、
http://localhost:8000/test.html?a=1&b=2
みたいなもので、URLの後に「?」でワンクッション置いて、「データ名=データ」の組合せを「&」で連ねたものですね。

PythonではCGIモジュールを用いればちょっとおまじないを書くだけで簡単にこのデータ(クエリ)を取得できます。

実際のサンプルコードを以下に示します。
これはGetメソッドで送信される数字aと数字bの足し算を行うものです。
最低限のことしか書いていませんので、エラー処理等はしていません。
CGIをローカルで動かしたい場合はこちらを参考にして下さい。

#ここから
import os
import cgi
if 'QUERY_STRING' in os.environ:
query = cgi.parse_qs(os.environ['QUERY_STRING'])
else:
query = {}
#ここまでおまじない

a = int(query['a'][0]) #データaを整数として読み込む
b = int(query['b'][0]) #データbを整数として読み込む

#出力
print "Content-Type:text/html"
print
print "%d + %d = %d" % (a, b, a+b)


本手法ではクエリは辞書型で与えられますので、query['データ名'][0]でデータを取り出すことが出来ます。

これをhtmlのフォームから送信するとしたらこんな感じでOK
<html>
<head>
<title>GETメソッドでPythonに通信</title>
</head>
<body>
<form action="./cgi-bin/get.py">
<input type="text" value="1" name="a" /> +
<input type="text" value="2" name="b" />
<input type="submit" value="計算" />
</form>
</body>
</html>


このブログではPythonを置けないので実行結果を画像で表示しますが、こんな感じになります。

getmethod.html

計算ボタンをクリック↓

get.py

なんとなくわかったでしょうか?
次回はJavascriptと組み合わせたサンプルを作ってみたいと思います。



関連記事
コメント
この記事へのコメント
コメントを投稿する
URL:
Comment:
Pass:
秘密: 管理者にだけ表示を許可する
 
トラックバック
この記事のトラックバックURL
http://creatornote.blog87.fc2.com/tb.php/30-f35bd58e
この記事にトラックバックする(FC2ブログユーザー)
この記事へのトラックバック
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。