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