Flask render_template需要5秒钟以上的时间才能运行

时间:2019-03-11 18:52:42

标签: python flask jinja2

我正在尝试显示一个包含一些数据的页面,将字典传递给jinja模板。加载需要很长的时间,对于非常小的数据集,轻松加载5-10秒。这就是我的Python的样子

@app.route("/request") 
def request_page(): 
    category_dict = CONFIG.get_categories() 
    return render_template('request.html', category_dict=category_dict)

这就是我的HTML外观

   {% extends "layout.html" %}
   {% block title %}Categories{% endblock %}
   {% block content %}
        <h1 class="display-4">Category List</h1>
           <form method='post' action='/result' onsubmit="return checkForm(this)">
             <div class="form-group">
                 {% for category, list in category_dict.items() %}
                   <div class="card">
                     <div class="card-header">
                      <a class="text-dark" data-toggle="collapse" href="#{{loop.index}}">
                        {{category}}
                      </a>
                    </div>
                    <div id="{{loop.index}}" class="collapse">
                    <div class="card-body text-small">
                      <ul class="list-group list-group-flush">
                         {% for project in list %}
                          <li class="list-group-item">
                            <div class="form-check">
                              <input class="form-check-input" type="checkbox" name="checkbox" value="{{project}}" id="{{project}}">
                              <label class="form-check-label" for="{{project}}">
                                      {{project}}
                              </label>
                            </div>
                          </li>
                        {% endfor %}
                      </ul>
                    </div>
                    </div>
                  </div>
                {% endfor %}
              <br>
              <h5>Reason for group access</h5>
              <textarea rows="4" cols="60" name="reasons">
              </textarea>
              <br>
            <button class='btn btn-primary' name='Submit'>Submit</button>
          </form>
 {% endblock %}

因此,作为一个概述,它是一个嵌套的for循环,其中外循环遍历字典的键值对,而内循环遍历值(字符串列表)。我要通过的字典不是很大,每个列表中都有〜5个键,可能还有〜5个项。做一些测试还发现,速度下降的确是HTML中的这段代码,而不是layout.html或其他任何代码。

0 个答案:

没有答案