函数执行后返回jinja模板上的函数开始

时间:2019-01-20 21:42:49

标签: python-3.x flask jinja2

what the code displays after activating a link我正在使用烧瓶网络服务器和Jinja模板设置加热控制,我已经改编了本教程http://mattrichardson.com/Raspberry-Pi-Flask/和flaskr教程中的代码,以控制电动阀升高或降低我需要的温度要操作继电器几秒钟然后停止,可以通过单击Web服务器上的按钮来触发。

我已经可以在下面的代码中完成此操作,但是在代码工作后,我希望网页重新设置为开始,因此,如果需要,我可以再次触发代码,我需要知道是否更改了烧瓶或jinja模板中的代码。 “ ups”是一个字典,其中的“ up”字典位于一个单独的文件中,该文件位于顶部导入的名为vannes.py的单独文件中。

valves.py

@bp.route("/ups/<changeVanne>/<action>")
  def action(changeVanne, action):
     changeVanne = int(changeVanne)
     deviceName = vannes[changeVanne]['nom']
     if action == "up":
        GPIO.output(changeVanne, GPIO.HIGH)
        message = "Temperature " + deviceName + " up."
        time.sleep(3)
        GPIO.output(changeVanne, GPIO.LOW)
        message = "Temperature " + deviceName + " stop."


     for up in ups:
        ups[up]['state'] = GPIO.input(up)


     templateData ={
        'message' : message,
        'ups' : ups
     }

     return render_template('valves/valves.html', **templateData)

valves.html

{% block devises %}
  {% for up in ups %}
    <p>The {{ ups[up].nom }}
  {% if ups[up].state == true %}
      turn temperature (<a href="/ups/{{up}}/up">up</a>)
  {% endif %}
    </p>
  {% endfor %}
  {% if message %}
  <h2>{{ message }}</h2>
  {% endif %}
{% endblock %}

当显示此代码时,“ ups”词典中的每个阀的一行都可见,并带有一个链接,该链接随后触发pi更改引脚状态,等待3秒钟然后重置,这在pi上发生,在网页上,激活链接的行不会重新开始,仅显示“ up”的名称。我不知道如何解决这个问题。

0 个答案:

没有答案