处理来自Python index.html文件的POST请求

时间:2018-05-08 08:45:01

标签: python post simplehttpserver

我正在尝试创建一个webform,从中我从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 :(得分:1)

我不熟悉内置的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进行测试。

您可以通过pip install flask安装Flask。