Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python CGI 프로그램으로 드롭다운 상자 데이터 전달하기

드롭다운 상자(Drop Down Box)는 선택 가능한 옵션이 많지만 그중 하나 또는 두 개만 선택해야 하는 경우에 사용하는 폼 요소입니다. 사용자가 목록에서 항목을 선택하면 해당 값이 서버의 CGI 프로그램으로 전송되어 처리됩니다.

드롭다운 상자 예제

아래는 드롭다운 상자 하나를 포함한 HTML 폼 코드 예제입니다.

<form action = "/cgi-bin/dropdown.py" method = "post" target = "_blank">
<select name = "dropdown">
<option value = "Maths" selected>수학</option>
<option value = "Physics">물리학</option>
</select>
<input type = "submit" value = "Submit"/>
</form>

실행 결과

위 코드를 실행하면 다음과 같은 드롭다운 선택 폼이 화면에 표시됩니다.

Python CGI 프로그램으로 드롭다운 상자 데이터 전달하기

CGI 스크립트 작성하기

이제 웹 브라우저에서 전송된 입력값을 처리하는 dropdown.py 스크립트를 살펴보겠습니다.

#!/usr/bin/python
# CGI 처리를 위한 모듈 임포트
import cgi, cgitb
# FieldStorage 인스턴스 생성
form = cgi.FieldStorage()
# 필드에서 데이터 가져오기
if form.getvalue('dropdown'):
   subject = form.getvalue('dropdown')
else:
   subject = "Not entered"
print "Content-type:text/html\r\n\r\n"
print "<html>"
print "<head>"
print "<title>Dropdown Box - Sixth CGI Program</title>"
print "</head>"
print "<body>"
print "<h2> Selected Subject is %s</h2>" % subject
print "</body>"
print "</html>"

코드 설명

이 스크립트의 동작 방식은 다음과 같습니다.

1. 모듈 임포트: cgi 모듈은 폼 데이터를 파싱하는 핵심 기능을 제공하고, cgitb 모듈은 오류 발생 시 상세한 디버그 정보를 브라우저에 표시해 줍니다.

2. FieldStorage 생성: cgi.FieldStorage() 객체는 POST 또는 GET 방식으로 전송된 폼 데이터를 담고 있으며, 이를 통해 각 필드의 값에 접근할 수 있습니다.

3. 값 확인: form.getvalue('dropdown')을 호출하여 드롭다운 상자에서 선택된 값을 가져옵니다. 값이 존재하지 않으면 기본 문자열인 "Not entered"가 할당되어 오류 없이 안전하게 처리됩니다.

4. 결과 출력: HTTP 헤더(Content-type:text/html)를 먼저 출력한 후, 선택된 과목명을 포함한 HTML 페이지를 동적으로 생성하여 사용자에게 보여줍니다.

이처럼 Python의 CGI 모듈을 활용하면 드롭다운 상자뿐만 아니라 텍스트 입력, 체크박스, 라디오 버튼 등 다양한 폼 요소의 데이터를 손쉽게 처리할 수 있습니다.