我正在使用Flask编写一个Web应用程序,当我尝试创建一个可由高级用户启动的倒数计时器(允许低级用户在该时间范围内响应)并使用time.sleep(1 )在倒计时功能中,它会冻结所有用户的网络应用程序,直到倒计时结束。
如果在倒计时期间应用程序没有冻结,我如何在Flask中倒计时?这是一个线程问题还是我需要一个不同的策略?
@main.route('/class/<class_name>', methods = ['GET', 'POST'])
@login_required
def view_class(class_name):
if class_name is None:
abort(404)
form = AttendanceForm()
check_in_permitted = False
c = Class.query.filter_by(id = class_name).first()
if current_user.is_instructor():
if form.validate_on_submit():
t = int(form.seconds.data)
check_in_permitted = True
while t >= 0:
print(t)
time.sleep(1)
t -= 1
print("TIME")
check_in_permitted = False
elif current_user.is_user():
if check_in_permitted == True:
form = CheckInForm()
return render_template('view_class.html', c = c, form = form)