【问题标题】:Code seems messy; asking if there is a better way代码看起来很乱;问有没有更好的办法
【发布时间】:2015-12-04 09:22:56
【问题描述】:

刚开始构建前端网络,这将是我第一次在这里提出问题。我正在使用 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 %}

【问题讨论】:

  • 添加更多空格和空行以提高可读性
  • 您应该在视图或辅助函数中进行更多的数据处理,然后将简化后的数据发送到模板。
  • @doru:谢谢!这对我有用

标签: html flask jinja2


【解决方案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 %}

【讨论】:

    【解决方案2】:

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

    {% 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
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-09-30
      • 1970-01-01
      • 2018-11-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多