Flask重置全局字典

时间:2016-04-29 17:31:20

标签: python dictionary flask global-variables

我正在Flask做一个tic tac toe用于学习目的。该板表示为字典,是一个全局变量。我想要一个按钮,重置"该板是空的,所以用户可以再次播放,但我的代码不起作用(它执行没有错误,但板保持不变)

html按钮调用执行的/ reset,但不会更改板值。

任何想法我做错了什么? 非常感谢!

<!DOCTYPE html>
<html>
<head>
<title>Test</title>
</head>

<body>

<div class="enter name">
   <form action="/play1" method="POST">
    <lable>Please specify your move (1,2,3,4,5,6,7,8,9)</lable>
    <input type="number" name="move" value"">
    <input type="submit" value="Make your move!">
    </form>
</div>
<div>
<table border="1">
<tr id="row1">



    {% if theBoard[1]!=' ' %}
    <td><h1>{{ theBoard[1] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;1&nbsp;</h1></td>
    {% endif %}

    {% if theBoard[2]!=' ' %}
    <td><h1>{{ theBoard[2] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;2&nbsp;</h1></td>
    {% endif %}

    {% if theBoard[3]!=' ' %}
    <td><h1>{{ theBoard[3] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;3&nbsp;</h1></td>
    {% endif %}

<tr id="row2">
    {% if theBoard[4]!=' ' %}
    <td><h1>{{ theBoard[4] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;4&nbsp;</h1></td>
    {% endif %}
    {% if theBoard[5]!=' ' %}
    <td><h1>{{ theBoard[5] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;5&nbsp;</h1></td>
    {% endif %}

    {% if theBoard[6]!=' ' %}
    <td><h1>{{ theBoard[6] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;6&nbsp;</h1></td>
    {% endif %}

<tr id="row3">
    {% if theBoard[7]!=' ' %}
    <td><h1>{{ theBoard[7] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;7&nbsp;</h1></td>
    {% endif %}
    {% if theBoard[8]!=' ' %}
    <td><h1>{{ theBoard[8] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;8&nbsp;</h1></td>
    {% endif %}

    {% if theBoard[9]!=' ' %}
    <td><h1>{{ theBoard[9] }} </h1></td>
    {% else %}
    <td><h1>&nbsp;9&nbsp;</h1></td>
    {% endif %}
</table>
</div>

<div class="reset">
<form action="/reset" method="GET">
    <lable>Do you wanna play again?</lable>
    <button>Play!</button>
</form>
</div>

</body>
</html>
{% endblock %}

html:

g++

2 个答案:

答案 0 :(得分:2)

  

html按钮调用执行的/ reset,但不会更改板值。

def reset():
    for i in range (1,9):
         theBoard[i] == ' '   # <--- This line
    return render_template("test.html", theBoard=theBoard)

您使用==进行比较,返回TrueFalse,您想要的是=运算符(赋值运算符,单等号),所以:theBoard[i] = ' '

答案 1 :(得分:1)

以下代码导致我所看到的错误:

theBoard[i] == ' '

以上实际上是执行比较而不是分配,将其更改为:

theBoard[i] = ' '