从Python Flask中的链接获取信息

时间:2014-04-15 02:20:33

标签: python flask raspberry-pi

我正在尝试使用覆盆子pi为我的arduino创建一个简单的Web界面。我想单击我在html中创建的链接,并将字符串“on”发送到python程序,以便它可以告诉arduino打开。 这是我的python代码

import serial
from flask import Flask, render_template, request
import datetime
app = Flask(__name__)
ser = serial.Serial('/dev/ttyACM0', 9600)

@app.route("/<action>")
def action(action):
    print action 
    #command = ""
    #while command != "done":
    #       command = raw_input("what do you want? ")
    if action == "on":
            ser.write('1')
    elif action == "off":
            ser.write('0')
    return render_template('index.html', **templateData)

@app.route("/")
def display():
    now = datetime.datetime.now()
    timeString = now.strftime("%Y-%m-%d %H:%M")
    templateData = {
            'title' : 'arduino',
            'time' : timeString
    }
    return render_template('index.html', **templateData)

if __name__ == "__main__":
    app.run(host='0.0.0.0', port=8080, debug=True)

这是我的HTML代码

<!DOCTYPE html>
    <head>
            <title>{{title}}</title>
    </head>
    <body>
            <p>The time at server is {{time}}</p>
            <p>
                The LED is currently off (<a href="/on">turn on</a>)
            </p>
    <body>
</html>

当有人点击链接turn on时,我希望将字符串打开发送到操作方法,以便它可以从那里获取。相反它的作用是转到/on目录,这并不奇怪。我到处寻找,无法找到如何做到这一点。这是我第一次使用Flask而且我对python很新,所以如果我完全关闭,请不要太苛刻。

1 个答案:

答案 0 :(得分:1)

您可以在采取行动后重定向

from flask import Flask, render_template, request, redirect

@app.route("/<action>")
def action(action):
    ...
    return redirect(url_for('display'))