将String从HTML表单传递给Python不起作用

时间:2017-07-27 18:12:52

标签: python html forms cgi

应该发生什么:我在Flask上运行这个python程序,并且我试图将“file_name”从HTML表单返回到我的python脚本,以便我可以在另一个python中使用它功能。 (例如,如果我在表单中的“文件名:”框中提交“myFile”,我希望我的HTML脚本能够正确地将“myFile”发送到我的python脚本。

问题:当我运行脚本并将字符串提交到HTML表单(“file_name”)并要求我的python脚本返回此值时,它将返回“None”。我尝试将此更改为POST请求,但也没有解决问题。

在HTML页面上:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<title>
Your Form
</title>

</head>
    <body>
            <form action ="/start/" method="GET" accept-charset="UTF-8">
                File Name: <input type ="text" name="file_name"> <br />
                <input type="submit" name="submit" value="submit"/>
            </form>
   </body>
</html>

Python脚本我将它连接到:

import cgi

app = Flask(__name__)
form = cgi.FieldStorage()

@app.route('/start/', methods = ["GET"])
def Initiate():
    your_file_name = form.getvalue('file_name')
    return your_file_name

1 个答案:

答案 0 :(得分:0)

代替your_file_name = form.getvalue('file_name'),试试这个:

your_file_name = request.get_json('file_name')

另外,将<form action ="/start/" method="GET" accept-charset="UTF-8">更改为:

<form action="/start/" mimetype='application/json' method="GET" accept-charset="UTF-8">

这将为您提供一个JSON响应,您可以使用键值对进行解析。如果您还没有,请确保您从烧瓶中导入请求:

from flask import request