代码似乎凌乱;问是否有更好的方法

时间:2015-12-04 09:22:57

标签: html5 flask jinja2

建立前端网络的新手,这将是我第一次在这里提出问题。我正在使用Flask试用它,但我的代码看起来有点混乱。有没有更简单的方法来实现此代码?

            {% for data in dataList %}
              <tr>
                {% for d in data %}
                  {% if data.index(d) == 0 %}
                    {% if dataList.index(data) == 0 %}
                      <td> <input type="radio" name="option" value="{{d}}" checked> </td>
                    {%else%}
                      <td> <input type="radio" name="option" value="{{d}}"> </td>
                    {%endif%}
                  {%else%}
                    {% if d %}
                      <td> {{d}} </td>
                    {%endif%}
                  {%endif%}
                {% endfor %}
              </tr>
            {% endfor %}

2 个答案:

答案 0 :(得分:1)

for-loop block内,您可以访问一些特殊变量。第一次迭代中loop.first等于True

{% for data in dataList %}
{% set outer_loop = loop %}
  <tr>
    {% for d in data %}
      {% if loop.first %}
        <td><input type="radio" name="option" value="{{d}}" {{"checked" if outer_loop.first}}></td>
      {% elif d %}
        <td>{{d}}</td>
      {% endif %}
    {% endfor %}
  </tr>
{% endfor %}

答案 1 :(得分:0)

如果给我这个代码整理,我可能最终会得到以下内容:

{% for data in dataList %}
    <tr>
        {% for d in data %}
            {% if data.index(d) == 0 %}
                <td>
                    <input type="radio" name="option" value="{{d}}" {% if dataList.index(data) == 0 %} checked {% endif %}>
                </td>
            {% else %}
                {% if d %}
                    <td>{{d}}</td>
                {% endif %}
            {% endif %} ## data.index(d) == 0
        {% endfor %} ## d in data
    </tr>
{% endfor %} ## data in dataList