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 скриптийг өөрчлөхгүй бол програм амжилтгүй болно.