我当前正在尝试通过 POST 请求打开多个页面。基本上,我正在做的是通过发送 POST 请求在数据库中搜索职位编号,然后(尝试)打开与该职位编号相对应的多个页面(例如:用于职位位置的网页、用于 Material 的网页等) .) 但是,我只能返回一个模板供浏览器打开。我看过很多很多像这样的问题:
Render multiple templates at once in Flask
但是,我没有找到问题的答案(很可能是因为我问错了问题......) 无论如何,到目前为止我的代码是这样的:
HTML:
<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>
flask :
@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)
上面的代码可以很好地打开一页,但我还想打开:
render_template('pageTwo.html', **results2)
谢谢!
最佳答案
打开多个页面如果您想在单个网页上(即在单个浏览器选项卡中)打开多个页面,那么您可以使用 template inheritance 组合和渲染任意多个单独的模板。您可以拥有单个基本页面,并使用您想要的任何内容嵌套许多子页面。
如果您想在多个浏览器选项卡中打开多个页面,那么您应该只返回一个 HTML 主页面(即单个模板),但在该网页中设置变量,其中包含您想要在新浏览器选项卡中打开的所有页面的链接。然后,在 JavaScript and browser API method window.open() 的帮助下,您可以打开这些页面。
关于javascript - 返回多个模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54411352/