簡體   English   中英

Flask + Ajax 集成:AttributeError:'WSGIRequestHandler' 對象沒有屬性 'environ'

[英]Flask + Ajax Integration : AttributeError: 'WSGIRequestHandler' object has no attribute 'environ'

所以我試圖使用 ajax 來執行一個 python 文件,它基本上不斷檢查文本文件的內容是否正在改變,如果是這樣,它將返回到 ajax 那里它將執行適當的操作。 python 腳本需要在頁面加載時開始。

這是我的python文件:

from flask import Flask
app = Flask(__name__)

@app.route("/") 
def checkFile():
    filename = "demo.txt"
while True:
    file = open(filename)
    for line in file:
        value = line
        intValue = int(value)
        if intValue < 50:
            return "done"
        else:
            continue

if __name__ == "__main__":
    app.run(host='127.0.0.1', debug=True, port=5000)

這是我的 JS 文件(在 ready() 中):

            $.ajax({
                type:'GET',
                url: "https://localhost:5000",
                dataType: "text",
                success: function(data) {
                    console.log("Response-Success: " + data);
                    if(data == "done") {
                        console.log("DONE!!!");
                    }
                    else {
                        console.log("NOPE!!!");
                    }
                },
                error:function(data) {
                    console.log("Response-Error: " + data);
                }
            }).done(function(data) {
                console.log("Response-Done: " + data);
            });

我得到的錯誤是:(這是對 python 腳本的請求發生的時間,這顯示在 python 服務器控制台中):

Exception happened during processing of request from ('127.0.0.1', 52078)
Traceback (most recent call last):
File "C:\Python27\lib\SocketServer.py", line 295, in _handle_request_noblock
self.process_request(request, client_address)
File "C:\Python27\lib\SocketServer.py", line 321, in process_request
self.finish_request(request, client_address)
File "C:\Python27\lib\SocketServer.py", line 334, in finish_request
self.RequestHandlerClass(request, client_address, self)
File "C:\Python27\lib\SocketServer.py", line 655, in __init__
self.handle()
File "C:\Python27\lib\site-packages\werkzeug-0.11.4-    py2.7.egg\werkzeug\serving .py", line 216, in handle
rv = BaseHTTPRequestHandler.handle(self)
File "C:\Python27\lib\BaseHTTPServer.py", line 340, in handle
self.handle_one_request()
File "C:\Python27\lib\site-packages\werkzeug-0.11.4- py2.7.egg\werkzeug\serving.py", line 250, in handle_one_request
elif self.parse_request():
File "C:\Python27\lib\BaseHTTPServer.py", line 253, in parse_request
self.send_error(400, "Bad request version (%r)" % version)
File "C:\Python27\lib\BaseHTTPServer.py", line 364, in send_error
self.log_error("code %d, message %s", code, message)
File "C:\Python27\lib\site-packages\werkzeug-0.11.4-py2.7.egg\werkzeug\serving.py", line 272, in log_error
self.log('error', *args)
File "C:\Python27\lib\site-packages\werkzeug-0.11.4-py2.7.egg\werkzeug\serving.py", line 278, in log
_log(type, '%s - - [%s] %s\n' % (self.address_string(),
File "C:\Python27\lib\site-packages\werkzeug-0.11.4-py2.7.egg\werkzeug\serving.py", line 266, in address_string
return self.environ['REMOTE_ADDR']
AttributeError: 'WSGIRequestHandler' object has no attribute 'environ'

你能告訴我在這種情況下該怎么辦嗎? 謝謝你。

我認為錯誤可能是由於在您的 javascript 文件中使用了“https”。

url: "https://localhost:5000"

我假設您在這里本地運行 Flask,並且它僅配置為處理 http。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM