हरकू के लिए फ्लास्क ऐप को तैनात करते समय अजीब "is_xhr" त्रुटि होती है


29

मेरे पास एक फ्लास्क ऐप है जिसे मैंने हरोकू में तैनात किया है, उनमें से एक मार्ग निम्नलिखित है

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
            }
        )

जब मैं स्थानीय रूप से इस समापन बिंदु का परीक्षण करता हूं, तो उस समापन बिंदु पर पोस्ट और जीईटी अनुरोध भेजते समय मेरे पास कोई समस्या नहीं है। हालाँकि, जब मैं हरोकू में तैनात होता हूं, मुझे निम्न त्रुटि मिलती है:

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'पहले कभी नहीं देखा है और यह तभी प्रतीत होता है जब मैं हरोकू में तैनात होता हूं। मैं क्या देखना चाहिए पर कोई मार्गदर्शन?

वहाँ भी json कुंजी के साथ एक मुद्दा नहीं लगता है keyword_data- यह मुद्दा सीमित है query_resultsजो एक सूची है।

जवाबों:


39

Werkzeugपुस्तकालय (पर निर्भरता Flask) हाल ही में एक प्रमुख अद्यतन प्राप्त (0.16.1 -> 1.0.0) और यह की तरह लग रहा Flask(<= 0.12.4) यह सीमित नहीं करता।

आपके पास 2 विकल्प हैं:

  • फ्लास्क के अपने वर्तमान संस्करण के साथ चिपके रहें और Werkzeug संस्करण को प्रतिबंधित करें जो आपके एप्लिकेशन के सेटअपहोम या आवश्यकताओं में स्पष्ट रूप से लिया गया है। ( werkzeug<1.0)

  • फ्लास्क (> = 1.0.0) के हाल के संस्करण में अपग्रेड करें, जो नवीनतम वेर्केग के साथ ठीक चल रहा है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.