运行时错误:在请求上下文之外工作

2024-09-27 22:33:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试一个web应用程序,它从客户端捕获视频,在服务器端处理并打印适当的消息。我能够以帧捕获视频并处理每一帧。为了将帧显示回客户机,我使用了来自internet的代码生成并渲染帧。然而,在产生帧之前,需要有一个if条件

def gen(camera):
    while True:
        frame, persons = camera.get_frame()
        if persons == 2:
            flash('2 people detected.')
        yield(b'--frame\r\n'
              b'Content-Type: image/jpeg\r\n\r\n' + frame + b'\r\n\r\n')


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

需要评估if条件并显示闪烁消息。但是,每当帧中有2个人时,服务器就会因错误而崩溃:

Debugging middleware caught exception in streamed response at a point where response headers were already sent.
Traceback (most recent call last):
  File "/Users/nitin/Desktop/cheating detection system/venv/lib/python3.8/site-packages/werkzeug/wsgi.py", line 462, in __next__
    return self._next()
  File "/Users/nitin/Desktop/cheating detection system/venv/lib/python3.8/site-packages/werkzeug/wrappers/response.py", line 49, in _iter_encoded
    for item in iterable:
  File "/Users/nitin/Desktop/cheating detection system/system/routes.py", line 273, in gen
    flash('2 people detected.')
  File "/Users/nitin/Desktop/cheating detection system/venv/lib/python3.8/site-packages/flask/helpers.py", line 389, in flash
    flashes = session.get("_flashes", [])
  File "/Users/nitin/Desktop/cheating detection system/venv/lib/python3.8/site-packages/werkzeug/local.py", line 422, in __get__
    obj = instance._get_current_object()
  File "/Users/nitin/Desktop/cheating detection system/venv/lib/python3.8/site-packages/werkzeug/local.py", line 544, in _get_current_object
    return self.__local()  # type: ignore
  File "/Users/nitin/Desktop/cheating detection system/venv/lib/python3.8/site-packages/flask/globals.py", line 33, in _lookup_req_object
    raise RuntimeError(_request_ctx_err_msg)
RuntimeError: Working outside of request context.

This typically means that you attempted to use functionality that needed
an active HTTP request.  Consult the documentation on testing for
information about how to avoid this problem.

我是烧瓶新手,非常感谢您的帮助


Tags: inpyvenvlibpackageslinesitesystem

热门问题