Javascript analyze()缺少一个位置参数:';请求';

Javascript analyze()缺少一个位置参数:';请求';,javascript,python,flask,fast-ai,Javascript,Python,Flask,Fast Ai,我正在尝试发送一个图像URL var photoData = $("#photo").attr("src"); // console.log(photoURL); console.log(photoData); var data = photoData; $.post("/analyze", data) .done((prediction) => { console.log('success'

我正在尝试发送一个图像URL

var photoData = $("#photo").attr("src");

// console.log(photoURL);
console.log(photoData);

var data = photoData;
$.post("/analyze", data)
      .done((prediction) => {
           console.log('success')
      })
使用flaskpython创建此路由

@app.route('/analyze', methods=['POST'])
async def analyze(request):
    predictionRaw = learn.predict(open_image(get_image_files(request)[0]))
    prediction = str(predictionRaw)
    return prediction
learn.predict()
使用快速人工智能库。对于Python代码,我实际上遵循了这一点

但出于某种原因,它总是给我这个错误
analyze()缺少一个必需的位置参数:“request”

为什么会这样?我做错了什么?我确信我已经正确地使用JS Ajax发送了请求参数

Traceback (most recent call last):
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\app.py", line 2464, in __call__
    return self.wsgi_app(environ, start_response)
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask_socketio\__init__.py", line 46, in __call__
    start_response)
  File "C:\Users\apanj\Anaconda3\lib\site-packages\engineio\middleware.py", line 74, in __call__
    return self.wsgi_app(environ, start_response)
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\app.py", line 2450, in wsgi_app
    response = self.handle_exception(e)
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\app.py", line 1867, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\app.py", line 2447, in wsgi_app
    response = self.full_dispatch_request()
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\app.py", line 1952, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\app.py", line 1821, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\_compat.py", line 39, in reraise
    raise value
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\app.py", line 1950, in full_dispatch_request
    rv = self.dispatch_request()
  File "C:\Users\apanj\Anaconda3\lib\site-packages\flask\app.py", line 1936, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
TypeError: analyze() missing 1 required positional argument: 'request'

您没有在url中传递
请求
。它自动进入请求范围。尝试:

from flask import request

@app.route('/analyze', methods=['POST'])
def analyze():

    print(request.get_data()) # to see what you're sending

    predictionRaw = learn.predict(open_image(get_image_files(request.data)))
    prediction = str(predictionRaw)
    return prediction

始终将完整的错误消息(从单词“Traceback”开始)作为文本(而不是屏幕截图)进行讨论(不是评论)。还有其他有用的信息。@furas我刚刚用回溯编辑了我的问题。我想它有用吧?输出终端上不再有回溯错误,但在浏览器控制台上我得到了
POSThttp://url/analyze 500(内部服务器错误)
错误。