Python Django-局部变量';秒';分配前参考
我一直在努力处理这件事,但我不知道该怎么办 我有一个表格,我得到了Python Django-局部变量';秒';分配前参考,python,html,django,Python,Html,Django,我一直在努力处理这件事,但我不知道该怎么办 我有一个表格,我得到了secs form role="form" action="" method="POST" >{% csrf_token %} <br> <input type="number" name="secs" min="0" max="999" maxlength="3" class="form-control no-spinners" placeholder="Progr
secs
form role="form" action="" method="POST" >{% csrf_token %}
<br>
<input type="number" name="secs" min="0" max="999" maxlength="3" class="form-control no-spinners" placeholder="Programar...">
<br>
<button type="submit" id="btn-login" class="w3-btn w3-large w3-green" style="width:30%"> Aceptar </button>
</form>
当我访问my.html时,出现以下错误:
引用的/streaming/local变量“secs”处发生UnbundLocalError
派遣前
提前感谢问题是,如果该方法不是Post,它将返回(最后一行),其中包含secs变量,但您在if条件中定义了它如果request.method不是“Post”,则从未定义过
secs
,因此当您尝试调用render()
,您会得到错误。是的,我知道这一部分,但是,如果我在post方法之外定义秒,我将无法获得正确的secs
值。您是从request.post['secs']
中获得的值,当request.method未post时,该值不存在。因此,我不知道您可能期望得到什么值……您想要函数上次执行时的secs
值吗?如果请求得到,请尝试在查询字符串中接受它。像这样/my/app/myroute?secs=3。然后在控制器中,您可以使用sec=request.args[“secs”]
def streaming(request):
if request.method == 'POST':
secs = request.POST['secs']
print secs
programarTiempo(secs)
messages.info(request, 'Iniciando streaming en...' + secs + ' segundos')
time.sleep(float(secs))
return redirect('streaming')
return render(request, "straming.html", {"secs":secs})