Python入門から応用までの学習サイト


リクエストの取得(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&param2=mod_wsgi&param3=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')]



Python
スタートブック


入門 Python 3


Effective
Python


退屈なことは
Pythonにやらせよう

 
 
 

次項はmod_wsgiでリダイレクト!

▶mod_wsgi:リダイレクト



確かな力が身につく
Python「超」入門




P  R