Flask 앱을 ​​Heroku에 배포 할 때 이상한 "is_xhr"오류


29

Heroku에 배포 한 플라스크 앱이 있는데 경로 중 하나는 다음과 같습니다.

def get_kws():
    seed_kw = request.json['firstParam']
    audience_max = request.json['secondParam']
    interest_mining_service = InterestMiningService(seed_kw, audience_max)
    query_result = interest_mining_service.query_keyword().tolist()
    if seed_kw in query_result:
        print ("yes")
        return jsonify(
            {
             'keyword_data' : interest_mining_service.find_kws().to_json(orient='records'),
             'query_results': query_result
            }
        )

이 엔드 포인트를 로컬에서 테스트 할 때 POST 및 GET 요청을 해당 엔드 포인트로 보낼 때 문제가 없습니다. 그러나 Heroku에 배포하면 다음 오류가 발생합니다.

File "/app/server/controller.py", line 24, in get_kws
2020-02-08T22:31:05.893850+00:00 app[web.1]: 'query_results': query_result
2020-02-08T22:31:05.893850+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/flask/json.py", line 298, in jsonify
2020-02-08T22:31:05.893851+00:00 app[web.1]: if current_app.config['JSONIFY_PRETTYPRINT_REGULAR'] and not request.is_xhr:
2020-02-08T22:31:05.893851+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.6/site-packages/werkzeug/local.py", line 347, in __getattr__
2020-02-08T22:31:05.893852+00:00 app[web.1]: return getattr(self._get_current_object(), name)
2020-02-08T22:31:05.893858+00:00 app[web.1]: AttributeError: 'Request' object has no attribute 'is_xhr'

나는 Request object has no attribute 'is_xhr'전에이 오류 를 본 적이 없으며 Heroku에 배포 할 때만 발생하는 것 같습니다. 내가 조사해야 할 것에 대한 지침이 있습니까?

또한 json 키에 문제가없는 것 같습니다 keyword_data-문제 query_results는 목록으로 제한됩니다 .

답변:


39

Werkzeug라이브러리 (에서 종속성 Flask) 최근 주요 업데이트받은 (0.16.1 -> 1.0.0)과 같이 보인다 Flask(<= 0.12.4)를 제한하지 않습니다.

두 가지 옵션이 있습니다.

  • 현재 버전의 Flask를 사용하고 애플리케이션의 setup.py 또는 requirements.txt ( werkzeug<1.0) 에서 명시 적으로 가져 오는 Werkzeug 버전을 제한하십시오.

  • 최신 Werkzeug에서 정상적으로 실행되는 최신 버전의 Flask (> = 1.0.0)로 업그레이드

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.