我目前正在尝试根据POST请求打开多个页面。基本上,我正在做的是通过发送POST请求在数据库中搜索工作编号,然后(尝试)打开与该工作编号相对应的多个页面(例如:用于工作位置的网页,用于材料的网页,等等) 。)但是,我只能返回一个模板以供浏览器打开。我看过很多类似这样的问题:
Render multiple templates at once in Flask
但是,我没有找到问题的答案(很可能是因为我问错了问题...) 无论如何,到目前为止,我的代码是这样的:
HTML:
ESITwoToFive = '1'
烧瓶:
<form action="/testing" method="POST" id="existBidFormOne" name="existBidFormOne" autocomplete="off">
<!-- Row one holds Title-->
<div class="center row" style="width: 100%;">
<h1>Enter a Job Number or a Project Name:</h1>
</div>
<!-- Row two holds job number-->
<div class="row">
<!-- Column one holds Job number-->
<div class="col-m-6">
<div class="row centerInput">
<div class="col-m-4 inputPad"><b>Job Number:</b></div>
<div class="col-m-8 noPad">
<input type="text" id="exb_jobNumber" name="exb_jobNumber" class="input maxWidth" />
</div>
</div>
</div>
</div>
<div class="centerInput row">
<span>
<button type="submit" id="exb_searchOne" class="srchBtn">Search</button>
</span>
</div>
</form>
上面的代码可以很好地打开一页,但是我也想打开:
@app.route('/testing', methods=["GET", "POST"])
def testing():
if request.method == 'POST':
job_num = request.form.getlist('exb_jobNumber')
if job_num:
session = Session()
results = ds.get_job_info(session, job_num) # returns dict
results2 = ds.get_job_material(session, job_num) #returns dict
session.close()
# open page one
return render_template('pageOne.html', **results)
谢谢!
答案 0 :(得分:1)
打开多个页面如果您想在单个网页上(即在单个浏览器选项卡中)打开多个页面,则可以使用{{ 3}}。您可以有一个基本页面,并可以嵌套许多子页面,其中包含您想要的任何内容。
如果要在多个浏览器选项卡中打开多个页面,则应仅返回单个HTML主页面(即单个模板),但要在该网页中设置变量,并包含要在新的浏览器选项卡中打开的所有页面的链接。 。然后,在template inheritance的帮助下,您可以打开这些页面。