Flask:无法在Jinja html模板中显示字典

时间:2016-04-14 14:02:08

标签: python html flask jinja2

我是一名学习Flask的新手,我正试图弄清楚如何在我的小应用程序中来回传递数据。 下面的代码返回错误"错误代码:未处理的异常"当一个有效的动作播放,我真的无法弄清楚出了什么问题? (另外两个选项工作正常。)

py代码:     theBoard = [{1:' ',2:' ',3:' ',4:' ',5:' ',6:' ',7:' ',8:' ',9:' '}]

@app.route('/test', methods=["GET", "POST"])
def test():
    if request.method == 'POST':
        x = request.form['move']
        move = int(x)
        valid_moves = [1,2,3,4,5,6,7,8,9]
        if move not in valid_moves:
            return 'you did not specify a valid move, please try again!'
        elif theBoard[move] != ' ':
            return 'you can not play that space, it is taken'
        else:
            theBoard[move] = 'X'
            return render_template("test2.html", theBoard=theBoard)

    return render_template("test.html")

html代码:

<table>
{% for key, value in theBoard.iteritems() %}
<h1>Key: {{key}}</h1>
<h2>Value: {{value}}</h2>
{% endfor %}
</table>

1 个答案:

答案 0 :(得分:0)

theBoard是一个列表,而在test()以及html模板中,你将它视为一个字典。用下面的代码替换第一行,看看它是否有效。

theBoard = {1:' ', 2:' ', 3:' ', 4: ' ', 5:' ', 6: ' ', 7:' ', 8:' ', 9:' '}