我正在尝试有一个简单的表单,用户可以在其中一次在文本框中输入几项内容,准备好后,点击一个按钮以对他们输入的数据运行一个功能。
这是 flask_app.py 中的整个页面
@app.route("/actors", methods=["GET", "POST"])
def actors():
if "actors" not in session:
session["actors"] = []
if "characters" not in session:
session["characters"] = []
errors = ""
if request.method == "POST":
try:
session["actors"].append(str(request.form["Actor"]))
session.modified = True
session["characters"].append(str(request.form["Character"]))
session.modified = True
if request.form["action"] == "Highlight Scripts":
input_file = request.files["input_file"]
actors = session["actors"]
characters = session["characters"]
for i in range(len(actors)):
response = highlight(actors[i], characters[i])
response.headers["Content-Disposition"] = "attachment; filename=result.pdf"
return response
session["actors"].clear()
session.modified = True
session["characters"].clear()
session.modified = True
return '''
<html>
<body>
<p>{result}</p>
<p><a href="/actors">Click here to submit a new script</a>
</body>
</html>
'''.format(result=result)
if len(session["actors"]) == 0:
actors_so_far = ""
else:
actors_so_far = "<p>Actors so far:</p>"
for a in session["actors"]:
actors_so_far += "<p>{}</p>".format(a)
return '''
<html>
<body>
{actors_so_far}
{errors}
<p>Enter an actor:</p>
<form method="post" action="/actors">
<p><input name="actor" /></p>
<p><input type="submit" name="action" value="Add another" /></p>
<p><input type="submit" name="action" value="Highlight Scripts" /></p>
</form>
</body>
</html>
在哪里
if request.form["action"] == "Highlight Scripts":
给出语法错误。
不确定如何进行并感谢任何建议!
这是从 this PythonAnywhere tutorial 中提取/复制的,我们使用基本上完全相同的代码来获取一堆用户提交的#s
正如@ewokx 评论的那样;
你没有
except
与try
:
如果你不想改变你的代码,你可以做 except:pass (尽管不推荐这样做)
if request.method == "POST":
try:
session["actors"].append(str(request.form["Actor"]))
session.modified = True
session["characters"].append(str(request.form["Character"]))
session.modified = True
except:
pass
if request.form["action"] == "Highlight Scripts":
input_file = request.files["input_file"]
actors = session["actors"]
characters = session["characters"]
for i in range(len(actors)):
response = highlight(actors[i], characters[i])
response.headers["Content-Disposition"] = "attachment; filename=result.pdf"
return response