Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串从HTML表单传递到Python不起作用_Python_Html_Forms_Cgi - Fatal编程技术网

将字符串从HTML表单传递到Python不起作用

将字符串从HTML表单传递到Python不起作用,python,html,forms,cgi,Python,Html,Forms,Cgi,应该发生什么:我正在Flask上运行这个python程序,并试图将“文件名”从HTML表单返回到我的python脚本,以便在另一个python函数中使用它。(例如,如果我在表单中写有“文件名:”的框中提交“myFile”,我希望HTML脚本将“myFile”正确地发送到python脚本 问题:当我运行脚本并将字符串提交到HTML表单(“文件名”)并要求python脚本返回此值时,它将返回“无”。我尝试将此更改为POST请求,但这也没有解决问题 在HTML页面上: <!DOCTYPE htm

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

问题:当我运行脚本并将字符串提交到HTML表单(“文件名”)并要求python脚本返回此值时,它将返回“无”。我尝试将此更改为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>
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

请尝试以下操作,而不是
您的\u file\u name=form.getvalue('file\u name')

your\u file\u name=request.get\u json('file\u name')

另外,将
更改为:

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

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


从flask导入请求

而不是
您的\u文件\u名称=form.getvalue('file\u名称')
,请尝试以下操作:

your\u file\u name=request.get\u json('file\u name')

另外,将
更改为:

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

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


从flask导入请求中

我尝试了你的建议,得到了这样一个结果:“错误的请求未能解码JSON对象:没有JSON对象可以被解码”。你知道为什么吗?尝试从提交按钮中删除name='submit'。另外,当你在网页上时,右键单击->检查->控制台(出现的窗口顶部)。查看那里的错误消息。它说了什么?此外,您可以尝试以下操作:your_file_name=request.get_json\n file_name=your_file_name['file_name']我尝试了您的建议,得到了这样的结果:“错误的请求无法解码json对象:无法解码任何json对象”。你知道为什么吗?试着从你的提交按钮中删除name='submit'。另外,当你在网页上时,右键单击->检查->控制台(出现的窗口顶部)。查看那里的错误消息。它说什么?另外,你可以试着这样做:你的文件名=请求。获取json\n文件名=你的文件名['file\u name']