Windows의 Python 스크립트에서 GET 및 POST 메서드를 사용하여 웹 페이지에서 데이터를 가져오는 방법
Python 프로그램 및 스크립트는 GET 및 POST 메서드(및 기타 HTTP 메서드: PUT, PATCH 및 DELETE)를 사용하여 웹 사이트 및 웹 서비스에서 데이터를 요청하고 수신할 수 있습니다.
하지만 웹 페이지에서 Python 스크립트로 데이터를 전달하려면 어떻게 해야 할까요?
이는 여러 가지 방법으로 수행할 수 있습니다.
Python이 Apache 웹 서버의 CGI 모듈로 구성된 경우 Python 스크립트에서 GET 및 POST 메서드를 사용하여 웹 페이지에서 데이터를 가져오는 방법
참조: Windows 10에 Python 및 PIP를 설치하는 방법. Python을 웹 서버 모듈로 설정하는 방법
웹 서버 디렉토리에서 test-python 하위 폴더를 만듭니다.
여기에서 test-form.htm이라는 이름과 다음 내용을 포함하는 HTML 파일을 생성합니다.
<!DOCTYPE html> <head> <title>ZaLinux.ru: An example of running Python on a web server</title> </head> <body> <form action="program.py" method="post"> <label for="name">Name:</label> <input type="text" id="name" name="name"><br><br> <label for="email">Surname:</label> <input type="text" id="surname" name="surname"><br><br> <label for="message">Information:</label><br> <textarea id="info" name="info" rows="4" cols="30"></textarea><br><br> <input type="submit" value="Submit"> </form> </body> </html>
동일한 하위 폴더에서 다음 콘텐츠로 program.py 파일을 만듭니다.
#!C:\python\python.exe # Import modules for CGI processing import cgi, cgitb # Create a FieldStorage instance form = cgi.FieldStorage() # Getting data from form fields name = form.getvalue('name') surname = form.getvalue('surname') info = form.getvalue('info') # HTTP header output print ('Content-type: text/html\r\n\r\n') # Output HTML code with received data print ('<html>') print ('<head>') print ('<title>ZaLinux.ru: An example of running Python on a web server</title>') print ('</head>') print ('<body>') print ('<em>Python script reports: </em>', '<br /><br />') print ('<b>Name: </b>', name, '<br />') print ('<b>Surname: </b>', surname, '<br />') print ('<b>Extra information: </b>', info, '<br />') print ('</body>') print ('</html>')
설명은 코드에 대한 주석에 제공됩니다. 양식에서 데이터를 가져오려면 form.getvalue()가 사용됩니다.
“#!C:\python\python.exe” 셔뱅이 있는 첫 번째 줄에 주목하십시오 – python.exe 파일의 경로는 경우에 따라 다를 수 있습니다. Python 설치에 맞게 줄을 편집하십시오.
http://localhost/test-python/test-form.htm 주소를 열고 양식 데이터를 입력합니다.

데이터를 서버로 보내봅시다. 보시다시피 Python 스크립트는 POST 메서드에서 웹 서버로 보낸 양식 데이터를 성공적으로 수신했습니다.

유사한 코드가 GET 메서드로 전송된 데이터를 수신하는 데 사용됩니다. 줄에서 메서드를 변경하기만 하면 됩니다.
<!DOCTYPE html> <head> <title>ZaLinux.ru: An example of running Python on a web server</title> </head> <body> <form action="program.py" method="get"> <label for="name">Name:</label> <input type="text" id="name" name="name"><br><br> <label for="email">Surname:</label> <input type="text" id="surname" name="surname"><br><br> <label for="message">Information:</label><br> <textarea id="info" name="info" rows="4" cols="30"></textarea><br><br> <input type="submit" value="Submit"> </form> </body> </html>
참고 웹 서버 CGI 모듈과 함께 사용하기 위한 Python 스크립트를 개선해야 합니다. 스크립트는 데이터를 표시하기 전에 HTTP 헤더를 보내야 합니다. Python 스크립트를 변경하지 않으면 프로그램이 실패합니다.