如何让HTML按钮激活python脚本?

时间:2019-02-26 01:19:17

标签: python html linux flask raspberry-pi

我的项目是让用户使用网站来控制树莓派相机。网站上的按钮将运行脚本以在相机上拍照。该脚本可以作为自己的exe正常运行,但是当我尝试将其合并到app.py代码中时,它将无法正常工作。我尝试了各种解决方案都无济于事。 我对linux / html / python非常陌生,所以我在这里苦苦挣扎。

HTML代码:

<div class="container">

<div><img src="https://scontent-dfw5-1.xx.fbcdn.net/v/t1.15752-9/52914705_308217033137888_3861578789158912000_n.png?_nc_cat=101&_nc_ht=scontent-dfw5-1.xx&oh=b067e9981fe2bbf6903d034ea33108bf&oe=5D1E4F7C" alt="Logo" height="40%" width="40%">

<br><br> <p>Thank you for using Photobooth Pi! 
<br>Click the button below to start a countdown.</p>

<form action="/pic" method="POST">
    <input type="submit" value="Take a pic">
</form>

</div>            
<div class="footer">
    <p><strong> COPYRIGHT © 2019 PHOTOBOOTH PI. ALL RIGHTS RESERVED.</strong></p>
</div>

PYTHON /烧瓶代码:

from flask import Flask, render_template
import time
import picamera

app = Flask(__name__)

@app.route('/')
def index():
    return render_template('index.html')

@app.route('/pic', methods=['GET', 'POST'])
def pic():
    "camera = picamera.PiCamera()"
    "camera.rotation = 90"
    "camera.stat_preview()"
    "time.sleep(5)"
    "camera.capture('tester.jpg')"
    "camera.stop_preview()"
    return        

if __name__ == '__main__':
    #Pi's IP Address
    app.run(debug=True, host='10.0.83.149')

该按钮不起作用,它带我进入调试屏幕。关于我在做什么错的任何想法吗?

1 个答案:

答案 0 :(得分:0)

代码总体上写得很好。您遇到的错误来自以下事实:您的函数未返回任何响应。更确切地说,您的Some Words 1234 Some Words That Should not be replaced 129123412 test 98 t e s t 98 Another 12000 函数以隐式pic结尾,该隐含return None在Flask上不起作用,并生成错误。尝试返回一些内容,例如:return "ok"


编辑

根据所作的澄清和我的最后评论,这是解决问题的一种方法:

@app.route('/pic', methods=['GET', 'POST'])
def pic():
    os.system("sudo python pic.py")
    return redirect(url_for('index'))