同时使用time.sleep()循环而无需重新加载页面

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了同时使用time.sleep()循环而无需重新加载页面相关的知识,希望对你有一定的参考价值。

我正在从网站上为树莓派设置一些泵的计时器。当我输入要启动泵的秒数时,我会向pi发送mqtt消息以在所需的时间将其打开。但是,如果我在满足条件之前不睡觉就这样做,则会向pi发送过多的mqtt消息。当我在代码中进行睡眠时,我的网站将在我输入的时间内重新加载整个页面。有谁有解决这个问题的更有效方法?

   @app.route("/pump1_timer", methods=["GET", "POST"])
    def pump1_timer():
        if request.method == "POST":
            seconds = float(request.form.get('pump1_timer'))
            t_end = time.time() + (seconds)
            while time.time() <= t_end:
                publish.single("MY TOPIC", "pump1:on", hostname="MY IP")
                time.sleep(seconds)
            else:
                publish.single("MY TOPIC", "pump1:off", hostname="MY IP")
            return main1.html 
答案

您的input需要name属性,而不是格式:

<input name="pump1_timer" ... />

以上是关于同时使用time.sleep()循环而无需重新加载页面的主要内容,如果未能解决你的问题,请参考以下文章

使用剃须刀页面调用服务器方法而无需重新加载页面

(Rails)重新加载“lib”文件而无需重新启动服务器......? [复制]

Thymeleaf 表更新而无需重新加载页面

如何使用 Ajax 加载过滤后的数据,而无需在 laravel 中重新加载整个页面

有没有办法修复 while 循环不使用 time.sleep 更新 tkinter 标签?

颤振更新文本小部件变量而无需重新加载