如何循环使用jinja2 for循环来创建一个select元素?

时间:2013-02-20 10:24:45

标签: jinja2

假设我有一个名为seq的python列表,我想在select元素中呈现它我该怎么做?

我试过了:

<select name="Exercise1">
         {% for item in seq %}
            <option  value="{{item}}">{{item}}</option>
         {% endfor %}
         </select>

它不起作用。

更新: 这是模板代码:

<!DOCTYPE html>

<html>
  <head>
    <title>Unit 2 Rot 13</title>
  </head>

  <body>
    <h2>Enter some text to ROT13:</h2>
    <form method="post">

                 <select name="Exercise1">
              {% for item in seq %}
                <option  value="{{item}}">{{item}}</option>
             {% endfor %}
             </select>


      <br>
      <input type="submit">

    </form>
  </body>

</html>

这里是渲染的html源代码:

<!DOCTYPE html>

<html>
  <head>
    <title>Unit 2 Rot 13</title>
  </head>

  <body>
    <h2>Enter some text to ROT13:</h2>
    <form method="post">

                 <select name="Exercise1">

                  </select>


      <br>
      <input type="submit">

    </form>
  </body>

</html>

我不确定为什么元素会消失而且没有错误。

2 个答案:

答案 0 :(得分:10)

你很亲密我的朋友你错过了一些空间:

你写了这个:

<option  value="{{item}}">{{item}}</option>

需要看起来像这样:

<option value="{{ item }}">{{ item }}</option>

如果能解决问题,请告诉我。祝你好运!

没有这些空格,它看起来像垃圾到python和浏览器:)

答案 1 :(得分:0)

检查在哪里渲染模板的函数,它必须包含:

def generate_template_for_exercize1():

    seq = [1, 2, 3] #here you probably will have more complex statement

    return render_template('your_template.html', seq=seq)