无法获得Flask应用和使用Flask Script一起运行的另一个功能 - python

我有一个树莓派,我设法分离出独立工作的元素。可以感应运动并拍摄照片,另一个可以使用Flask在我的本地网络上流式传输摄像头。

但是我想让它们同时运行,我一直在研究Flask Script模块和Manger功能。我相信我的安装程序正确。但是,当我运行“ runserver”命令时,实际上没有任何反应。

我甚至想用Flask Script做些什么?如果这是我的方法是正确的,或者什么是更好的解决方案。

谢谢

到目前为止,这是我的python脚本:

from importlib import import_module
import os
from flask_script import Server, Manager
from flask import Flask, render_template, Response
from camera import Camera
from gpiozero import MotionSensor
import time

# Code to take a snapshot when motion is detected
def senseMotion():
    pir = MotionSensor(4)

    while True:
        if pir.motion_detected:
            print('Motion detected')
            Camera.snapshot()
            time.sleep(60)

app = Flask(__name__)
manager = Manager(app)


# Flask app to view video stream in browser
@app.route('/')
def index():
    """Video streaming home page."""
    return render_template('index.html')


def gen(camera):
    """Video streaming generator function."""
    while True:
        frame = camera.get_frame()
        yield (b'--frame\r\n'
           b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n')


@app.route('/video_feed')
def video_feed():
    """Video streaming route. Put this in the src attribute of an img tag."""
    return Response(gen(Camera()),
                mimetype='multipart/x-mixed-replace; boundary=frame')

@manager.command
def runserver():
    senseMotion()
    app.run(host='0.0.0.0', threaded=True)


if __name__ == "__main__":
    manager.run()

#if __name__ == '__main__':
    #app.run(host='0.0.0.0', threaded=True)

参考方案

gpiozero.MotionSensor具有事件when_motion,该事件在不同线程中运行代码。

所以用pir = MotionSensor(4)

pir.when_motion = MakeSnapshot

当然,您需要定义功能MakeSnapshot()

阅读有关该课程的更多信息:https://gpiozero.readthedocs.io/en/stable/api_input.html#motion-sensor-d-sun-pir

flask:异常后停止服务器 - python

我想在发生未处理的异常时立即停止我的Flask服务器。这是一个例子:from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): 1/0 # argh, exception return 'Hello World!' i…

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

Flask-RESTful-返回自定义响应格式 - python

我已经按照以下Flask-RESTful文档定义了自定义响应格式。app = Flask(__name__) api = restful.Api(app) @api.representation('application/octet-stream') def binary(data, code, headers=None): resp =…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

Python ThreadPoolExecutor抑制异常 - python

from concurrent.futures import ThreadPoolExecutor, wait, ALL_COMPLETED def div_zero(x): print('In div_zero') return x / 0 with ThreadPoolExecutor(max_workers=4) as execut…