使用Django Framework将用户表单答案作为输入进行比较,并将其与使用eval的数学表达式的评估进行比较

时间:2013-08-13 06:50:38

标签: python django

我遇到问题编码并想出如何将一个值作为一个表单的用户输入的答案进行比较,并使用该输入将其与eval(拼图)进行比较哪个拼图是一个简单的表达式,如2 + 2

这是一些代码。

网址:很好。

观点:

def play(请求):

if request.user.is_authenticated():
    number_of_records = Puzzles.objects.count()
    random_index = int(random.random()*number_of_records)+1
    rand_puzz = Puzzles.objects.get(id = random_index).puzzle
    solution = eval(rand_puzz)
    if solution = request.GET['a']:
       message = "correct"
       return render(request, 'play.html', {'rand_puzz': rand_puzz, 'message':message})
    else: 
       message = "incorrect"
    return render(request, 'play.html', {'rand_puzz': rand_puzz, message':message})
else:
    return render_to_response('home.html')

HTML:

    <form action= '/play/' method ="GET">
        <table style="margin-left:auto; margin-right:auto; width:auto;">
<table style="margin-left:auto; margin-right:auto; width:auto; border:solid 1px">
<tr><td><label for="username">Question:</label></td>
<td>{{rand_puzz}}</td></tr>
    <td><input type="number" name="a" value="a" id="a"></td></tr>
    <td>{{solution}}</td></tr> 
     <td> Your answer is:{{message}}</td></tr>
<tr><td></td><td><input type="submit" value="submit"/></td></tr>
</table>
        </table>
    </form>
  </div>  

1 个答案:

答案 0 :(得分:0)

我不知道它是否会解决您的问题但是替换

from django.shortcuts import get_object_or_404

rand_puzz = Puzzles.objects.get(id = random_index).puzzle
by
rand_puzz = get_object_or_404(Puzzles,id = random_index)