Обработка запроса POST из файла Python index.html - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь создать веб-форму, из которой я выполняю некоторую обработку данных из скрипта Python и записываю ее в файл HTML.Я использую SimpleHTTPServer и обнаружил, что он не может обрабатывать запросы POST.Я часами гуглял и не смог этого понять.Вот соответствующая часть моего кода:

index = open("index.html", "w")
form_string = '''<form action="" method="post">
                  <center><input type="radio" name="radio" value="left">
                  <input type="radio" name="radio" value="middle">
                  <input type="radio" name="radio" value="right"></center>
                  <center><p><input type="submit" name="submit" value="Submit Decision"/></p></center>
                  </form>'''
index.write(form_string)

Я попытался использовать следующий фрагмент php в качестве теста, чтобы проверить, работает ли он, но я получил сообщение о том, что мой SimpleHTTPServer не может обрабатывать запросы POST.

php_string = '''<?php
                    echo .$_POST['radio'];
                 ?>
                 '''

index.write(php_string)

Моя общая цель - просто сохранить, какая кнопка была нажата пользователем в каком-то внешнем файле, и я подумал, что запрос POST будет лучшим способом.Кто-нибудь знает, как я мог это сделать?

1 Ответ

0 голосов
/ 08 мая 2018

Я не знаком со встроенным SimpleHTTPServer, но он предназначен для учебных целей.

Я бы порекомендовал вам использовать хорошо известную микросреду с именем Flask, возможно, это то, что вам нужно:

from flask import Flask, request

app = Flask(__name__)


@app.route('/')
def index():
    return '''<form action="" method="post">
              <center><input type="radio" name="radio" value="left">
              <input type="radio" name="radio" value="middle">
              <input type="radio" name="radio" value="right"></center>
              <center><p><input type="submit" name="submit" value="Submit Decision"/></p></center>
              </form>'''


@app.route('/', methods=['POST'])
def post_abc():
    return 'radio: "%s", submit: "%s"' % (request.form['radio'], request.form['submit'])


if __name__ == '__main__':
    app.run(debug=True)

Посетите http://localhost:5000 в своем браузере, чтобы проверить его.

Вы можете установить Flask через pip install flask.

...