Python CGI

CGIでデータを受け取る

サンプルプログラム:

Pythonでは,getもpostも受け取り側の同じプログラムで良い.
#!/usr/bin/python
#coding: utf-8

import cgi
import os

message = ''
method = ''

method = os.environ['REQUEST_METHOD']

form = cgi.FieldStorage()
if( form.has_key('message') ):
	message = form['message'].value

print 'Content-Type: text/html'
print

print '''
<html>
<head>
<META http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Python message test</title>
</head>
<body>
Your message is:<br>
 %s <br>
<br>
Method is %s <br>
</body>
</html>
''' % ( message, method )
Get methodによるhtml
<html>
<head>
<META http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Python get test</title>
</head>
<body>

<form method="get" action="message.cgi">
Your message:<br>
<input name="message" size="64" />
<input type="submit" value="Submit" />
</form>

</body>
</html>
Post methodによるhtml
<html>
<head>
<META http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>Python post test</title>
</head>
<body>

<form method="post" action="message.cgi">
Your message:<br>
<input name="message" size="64" />
<input type="submit" value="Submit" />
</form>

</body>
</html>
Get methodでサンプルを実行する
Post methodでサンプルを実行する
サンプルをダウンロードする

説明:

#!/usr/local/bin/python
#coding: utf-8
pythonのパスの設定.サーバーによっては,/usr/local/bin/pythonに修正が必要です.
文字コードがutf-8であることを明記しています.

method = os.environ['REQUEST_METHOD']
Methodの種類を取得.
form = cgi.FieldStorage()
if( form.has_key('message') ):
	message = form['message'].value
cgi.FieldStorageを使えば,簡単にデータが取得できる.
print 'Content-Type: text/html'
print
CGIでhtmlを出力するときのおまじないです.