我正在尝试从表单获取存储在输入变量中的值。
我的html文件如下:
<body topmargin="200">
<form method="post" action="translation">
<div align="center">
<font size="5">ქართული >> ინგლისური</font>
<input type="radio" name="convert" value="geo">
<br>
<font size="5">ინგლისური >> ქართული</font>
<input type="radio" name="convert" value="eng">
</div>
<div align="center">
<br>
<input type="text" name="words" size="70">
<br>
<br>
<input type="submit" value="თარგმნა">
</div>
</form>
</body>
,这是代码的一部分。在try子句中,我将从单选按钮获取的值存储到变量“ convert”中,并且该值应为“ eng”或“ geo”,但每次都会返回“ on”。我不知道为什么会这样。网站的外观如下:http://hgresa.pythonanywhere.com/:
def translation(word):
try:
geo_to_eng = list(dictionary.keys())[list(dictionary.values()).index(word)]
return geo_to_eng
except ValueError:
return dictionary[word]
@app.route("/")
def base():
return render_template("input.html")
@app.route("/translation", methods=["POST"])
def translate():
word_to_translate = request.form["words"].lower()
finished = translation(word_to_translate)
try:
choice = request.form["convert"]
render = render_template("results.html", the_word=word_to_translate, translated=finished)
print(choice)
if choice == "eng":
return render
elif choice == "geo":
return render
return render_template("results.html", the_word=word_to_translate, translated=finished)
except:
return render_template("results.html", the_word=word_to_translate, translated=finished)
if __name__ == '__main__':
app.run(debug=True)
我们将不胜感激
答案 0 :(得分:0)
首先,您应该知道如何正确调试以找出问题的原因。
如果您打开网络调试功能(例如Chrome中的 inspect ,然后查看 Network 标签),则可以看到浏览器将数据传输到服务器是:
convert=on&words=
因此,convert
的值为"on"
。在Flask中,您无能为力。问题出在HTML中。
然后,如果您查看http://hgresa.pythonanywhere.com/的来源,您会发现它实际上具有以下内容:
<font size="5">ქართული >> ინგლისური</font>
<input type="radio" name="convert">
<br>
<font size="5">ინგლისური >> ქართული</font>
<input type="radio" name="convert">
value
标记中没有<input>
。这就是为什么你没有价值。