[Python CGI] (3) URL에 대한 질의 매개변수 가져오기

할 일


Python에서 CGI 프로그래밍을 시도합니다.이번에는 URL의 검색 매개 변수를 보여 줍니다

출처

test03.html, 준비 pycgi03.py 두 문건.
이것은 **area01=ABC&area02=XYZ가 CGI에 주는 매개변수입니다.
.
├── cgi-bin
│   └── pycgi03.py
└── test03.html
test03.> 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))

시험해 보다


Python 3을 사용하여 웹 서버를 시작합니다.
$ sudo python3 -m http.server 8000 --cgi
사이트http://localhost:8000/test03.html를 열면 다음과 같은 내용이 성공적이다.

좋은 웹페이지 즐겨찾기