🐡
[Python CGI] (3) URLのクエリパラメータを取得
やること
PythonでCGIプログラミングやってみる。今回は、URLのクエリパラメータを表示してみる
ソース
test03.html
,pycgi03.py
の2つのファイルを用意します。
**area01=ABC&area02=XYZ
**がCGIに渡すパラメータです。
.
├── cgi-bin
│ └── pycgi03.py
└── test03.html
test03.htmlは、CGI(pycgi03.py)を呼び出す処理があります。
test03.html
<HTML>
<HEAD>
<TITLE>CGIの起動サンプル(JavaScript)</TITLE>
<SCRIPT LANGUAGE="JavaScript">
<!--
function doCGI(url)
{
document.location.href = url;
}
//-->
</SCRIPT>
</HEAD>
<BODY onLoad="doCGI('./cgi-bin/pycgi03.py?area01=ABC&area02=XYZ')">
</BODY>
</HTML>
pycgi03.pyは、os.environ.get('QUERY_STRING')
でURLのクエリパラメータを取得します。
pycgi03.py
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import cgi
import sys
import io
import time
import os
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
getVal = os.environ.get('QUERY_STRING')
grpList = getVal.split('&')
grpDict = {}
for grp in grpList:
tmpList = grp.split('=')
grpDict[tmpList[0]] = tmpList[1]
print("[Python CGI Test 03]",file=sys.stderr)
print('Content-Type: text/html; charset=UTF-8\n')
html_body = """
<h1>[Python3 CGI test 03]</h1>
<h2>area01 = "%s"</h2>
<h2>area02 = "%s"</h2>
"""
form = cgi.FieldStorage()
area01 = grpDict["area01"]
area02 = grpDict["area02"]
print(html_body % (area01, area02))
動かしてみる
Python3でWebサーバーを起動します。
$ sudo python3 -m http.server 8000 --cgi
サイト http://localhost:8000/test03.html
を開き、以下のように表示されれば成功です。
Discussion