Python - Остановить бесконечный l oop с выходом и затем перенаправить - PullRequest
1 голос
/ 26 марта 2020

Я пытаюсь остановить бесконечное время, пока l oop передает кадры с камеры, используя функцию выхода, но также пропускает метку подтверждения («подтверждение»), если во время идентификации в камере был идентифицирован нужный человек. Итак, я написал заявление if, которое проверяет, что подтверждение не равно «notfound», и если это так, это означает, что это человек, и мне нужно куда-то перенаправить, в этих примерах - домашняя страница.

from flask import Flask, render_template, Response, redirect, url_for
import cv2
import numpy as np
from camera2 import VideoCamera

app = Flask(__name__)

light_on = False

@app.route('/', methods=['GET', 'POST'])
@app.route('/home', methods=['GET', 'POST'])

def home():
    return render_template("main.html")

@app.route('/recognition', methods=['GET', 'POST'])
def recognition():
    return render_template('recognition.html')

def gen(camera2):
    while True:
        confirmation, frame = camera2.get_frame()
        print(confirmation)
        # yield ('--frame\r\nContent-Type: image/jpeg\r\n\r\n' + frame + '\r\n\r\n')
        yield (b'--frame\r\n'
               b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')
        if confirmation != "notfound":
            return redirect(url_for("home")) 

@app.route('/video_feed')
def video_feed():
    return Response(gen(VideoCamera()),
                    mimetype='multipart/x-mixed-replace; boundary=frame')

if __name__ == '__main__':
    app.run("localhost", 5050, debug=True, threaded=True)

Но всякий раз, когда я пытаюсь это сделать, я получаю сообщение об ошибке:

"Attempted to generate a URL without the application context being"
RuntimeError: Attempted to generate a URL without the application context being pushed. This has to be executed when application context is available.

Буду признателен за любую помощь или совет!

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...