【问题标题】:Return multiple templates返回多个模板
【发布时间】:2019-06-22 00:11:43
【问题描述】:

我目前正在尝试通过 POST 请求打开多个页面。基本上,我正在做的是通过发送 POST 请求在数据库中搜索工作编号,然后(尝试)打开与该工作编号相对应的多个页面(例如:工作位置的网页,材料的网页等.) 但是,我只能返回一个模板供浏览器打开。我看过很多很多这样的问题:

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>

烧瓶:

@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)

谢谢!

【问题讨论】:

    标签: javascript flask


    【解决方案1】:

    打开多个页面 如果您想在单个网页上打开多个页面(即在单个浏览器选项卡中),那么您可以使用 @987654321 组合和呈现任意数量的单独模板@。您可以拥有单个基本页面并嵌套许多包含您想要的任何内容的子页面。

    如果您想在多个浏览器选项卡中打开多个页面,那么您应该只返回一个主 HTML 页面(即单个模板),但在该网页中设置变量,其中包含您要在新浏览器选项卡中打开的所有页面的链接.然后,在JavaScript and browser API method window.open() 的帮助下,您可以打开这些页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      • 1970-01-01
      • 1970-01-01
      • 2018-02-21
      • 1970-01-01
      相关资源
      最近更新 更多