HTML-форма POST для python script?
Кто-нибудь знает какие-либо хорошие ресурсы для получения информации о том, как данные POST из HTML-формы передаются на python script?
Ответы
Ответ 1
Для очень простого CGI script вы можете использовать cgi module. Ознакомьтесь с следующей статьей документации Python для очень простого примера того, как обрабатывать HTML-форму, представленную через POST
:
Пример из вышеприведенной статьи:
#!/usr/bin/env python
import cgi
import cgitb; cgitb.enable() # for troubleshooting
print "Content-type: text/html"
print
print """
<html>
<head><title>Sample CGI Script</title></head>
<body>
<h3> Sample CGI Script </h3>
"""
form = cgi.FieldStorage()
message = form.getvalue("message", "(no message)")
print """
<p>Previous message: %s</p>
<p>form
<form method="post" action="index.cgi">
<p>message: <input type="text" name="message"/></p>
</form>
</body>
</html>
""" % message
Ответ 2
Вы также можете просто использовать завиток в командной строке. Если вы просто хотите подражать пользователю, отправляющему форму на веб-сервер, вы бы сделали что-то вроде:
curl -F "user=1" -F "fname=Larry" -F "lname=Luser" http://localhost:8080
Есть и множество других вариантов. IIRC, '-F' использует 'multipart/form-data' и заменяет -F на '--data' будет использовать данные с urlencoded. Отлично подходит для быстрого теста.
Если вам нужно разместить файлы, вы можете использовать
curl -F"@mypic.jpg" http://localhost:8080
И если вам нужно использовать Python для этого, а не для командной строки, я настоятельно рекомендую модуль "плакат". http://atlee.ca/software/poster/ - это делает это действительно, очень просто (я знаю, потому что я сделал это без этого модуля, и это головная боль).