リクエストの取得(mod_wsgi)
Pythonにおけるmod_wsgiを用いたリクエスト処理となります。 「get」「post」両方を記載していきます。 cgiでのリクエストの取得方法は「cgi/リクエストの取得」をご覧ください。
「get」リクエストの処理方法は下記の通りとなります。
# -*- coding: utf-8 -*-
import cgi
def application(environ, start_response):
start_response('200 OK', [('Content-Type','text/html')])
method = environ.get('REQUEST_METHOD')
print_char = ''
if method == 'GET':
query = cgi.parse_qsl(environ.get('QUERY_STRING'))
for params in query:
print_char += params[0] + ':' + params[1] + '
'
return print_char
return 'pythonでmod_wsgi'
13行目「cgi.parse_qsl」の戻り値はリストで、内包される値は各パラメータを保持したタプルとなります。
URL:http://xxxxx/python.wsgi?param1=python¶m2=mod_wsgi¶m3=get
戻り値:[('param1', 'python'), ('param2', 'mod_wsgi'), ('param3', 'get')]
「post」リクエストの処理方法は下記の通りとなります。
# -*- coding: utf-8 -*-
import cgi
def application(environ, start_response):
start_response('200 OK', [('Content-Type','text/html')])
method = environ.get('REQUEST_METHOD')
print_char = ''
if method == 'POST':
wsgi_input = environ['wsgi.input']
content_length = int(environ.get('CONTENT_LENGTH', 0))
query = cgi.parse_qsl(wsgi_input.read(content_length))
for params in query:
print_char += params[0] + ':' + params[1] + '
'
return print_char
return 'pythonでmod_wsgi'
getと同じように15行目「cgi.parse_qsl」の戻り値はリストで、各パラメータを保持しているタプルが内包されています。
<form method="post" action="/python.wsgi">
<input type="hidden" id="param1" name="param1" value="python">
<input type="hidden" id="param2" name="param2" value="mod_wsgi">
<input type="hidden" id="param3" name="param3" value="post">
<input type="submit">
</form>
戻り値:[('param1', 'python'), ('param2', 'mod_wsgi'), ('param3', 'post')]
次項はmod_wsgiでリダイレクト!
▶mod_wsgi:リダイレクト
