Подтвердить что ты не робот

HTML-форма POST для python script?

Кто-нибудь знает какие-либо хорошие ресурсы для получения информации о том, как данные POST из HTML-формы передаются на python script?

4b9b3361

Ответ 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/ - это делает это действительно, очень просто (я знаю, потому что я сделал это без этого модуля, и это головная боль).