12345, 23456
在TextField表单中,应用程序将对这些ID进行一些分析,然后显示结果。我的问题是,当前,当用户单击“提交”并完成数据分析时,它总是将用户重定向到
www.website.com/results
.我需要创建唯一的url,如
www.website.com/results/12345+23456
现在,有一些关于StackOverflow的问题与我的问题类似,但它们不一样,对我没有帮助。因此,首先,在讨论之前,让我展示一些代码。
<div>
<form action="https://website.com/results/" class="form-inline" method="post">
<div class="form-group">
<label for="PubmedID">Pubmed ID(s)</label>
<input type="text" class="form-control" id="PubmedID" name="pmid" value="{{request.form.pmid}}">
</div>
<button type="submit" id= "myButton" class="btn btn-default" data-toggle="modal" data-target="#myModal">Submit</button>
</form>
</div>
正如你所见
value
因为表单是
request.form.pmid
class pmidForm(Form):
pmid = TextField('PubmedID')
action
这种形式的指向
website.com/results
这会触发调用我的Flask函数:
@app.route('/results/', methods=["POST"])
def results():
form = pmidForm()
try:
if request.method == 'POST':
#entry = request.form or request.data doesn't help me...
entry = form.pmid.data #This is the user input from the form!
# DO LOTS OF STUFF WITH THE ENTRY
return render_template('results.html')
except Exception as e:
return(str(e))
正如你所见,我正在使用
POST
和
form.pmid.data
再说一次,我不想直接重定向到
/results
form action
指向
https://website.com/results/{{request.form.pmid}}/
然后将结果函数更新为
@app.route('/results/<form_stuff>', methods=["POST"])
def results(form_stuff):
但这从来没有工作,将重新引导我到404找不到的页面。我认为这是有道理的,因为在
行动
现在,我的另一个类似帖子是:
Keeping forms data in url with flask
,但它并不能回答或解决我的问题。对于这篇文章,人们提出的关键点是使用
岗位
(我已经这么做了),并获取和返回数据
return request.args['query']
return render_template()
正是我想要的。我只需要在
results
URL,以便用户在表单中输入的任何内容都可以是唯一的。
/结果
函数以将表单数据添加到URL?请让我知道,如果有任何其他信息,我可以提供,使我的问题更清楚。我感谢你的帮助!谢谢