学习使用 Jinja2 模板,缺少 URL 个值

Learning to use Jinja2 templates, missing URL values

我正在学习如何使用 Jinja2 模板(参见下面的代码)。当我将一个项目添加到我的表单时,我希望 url 会变成这样。

http://localhost:8080/?food=steak&food=eggs&food=cheese

然而,最终发生的是第一个 food 将有一个值,但其他所有内容都是空白的。它看起来像这样:

http://localhost:8080/?food=asd&food=&food=

我做错了什么?

<form>
    <h2>Add a Food</h2>
    <input type="text" name="food">
    {% if items %}
        {% for items in items %}
            <input type="hidden" name="food" value="{{item}}">
        {% endfor %}
    {% endif %}

    <button>Add</button>

    {% if items %}
        <br>
        <br>

        <h2>Shopping List</h2>
        <ul>
            {% for item in items %}
                <li>{{ item }}</li>
            {% endfor %}
        </ul>
    {% endif %}
 </form>

这是渲染 HTML 的函数:

class MainPage(Handler):
    def get(self):
        items = self.request.get_all("food")
        self.render("shopping_list.html", items=items)

我不确定,但我认为问题出在您的 <button> 标签上。尝试像 <button type='submit'> 这样的东西。我认为您当前的按钮没有任何作用。

w3 documentation here

对于 item items?

    {% for item in items %}
        <input type="hidden" name="food" value="{{item}}">
    {% endfor %}