플라스크/Ajax HTTP 연결을 유지하는 방법?
jQuery Ajax 전화가 왔는데요, 다음과 같습니다.
$("#tags").keyup(function(event) {
$.ajax({url: "/terms",
type: "POST",
contentType: "application/json",
data: JSON.stringify({"prefix": $("#tags").val() }),
dataType: "json",
success: function(response) { display_terms(response.terms); },
});
플라스크 방법은 다음과 같습니다.
@app.route("/terms", methods=["POST"])
def terms_by_prefix():
req = flask.request.json
tlist = terms.find_by_prefix(req["prefix"])
return flask.jsonify({'terms': tlist})
tcpdump는 HTTP 대화 상자를 표시합니다.
POST /terms HTTP/1.1
Host: 127.0.0.1:5000
User-Agent: Mozilla/5.0 (X11; Linux i686; rv:12.0) Gecko/20100101 Firefox/12.0
Accept: application/json, text/javascript, */*; q=0.01
Accept-Language: en-us,en;q=0.5
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/json; charset=UTF-8
X-Requested-With: XMLHttpRequest
Referer: http://127.0.0.1:5000/
Content-Length: 27
Pragma: no-cache
Cache-Control: no-cache
{"prefix":"foo"}
그러나 플라스크는 살아있지 않고 대답합니다.
HTTP/1.0 200 OK
Content-Type: application/json
Content-Length: 445
Server: Werkzeug/0.8.3 Python/2.7.2+
Date: Wed, 09 May 2012 17:55:04 GMT
{"terms": [...]}
킵얼라이브가 시행되지 않는 것이 정말 그런 경우입니까?
기본 request_handler는 WSGIRquestHandler입니다.
전에app.run()
, 한 줄 더하면,WSGIRequestHandler.protocol_version = "HTTP/1.1"
잊지 마세요.from werkzeug.serving import WSGIRequestHandler
.
Werkzeug의 통합 웹 서버는 Base를 기반으로 구축됩니다.Python 표준 라이브러리의 HTTPS 서버.기본 HTTP 서버는 HTTP 프로토콜 버전을 1.1로 설정하면 Keep-Alives를 지원하는 것 같습니다.
Werkzeug는 하지 않지만 Flask가 Werkzeug의 BaseWSG 서버를 인스턴스화하기 위해 사용하는 기계를 해킹할 준비가 되었다면 직접 할 수 있습니다.Flask.run()
어느쪽이werkzeug.serving.run_simple()
. 당신이 해야 할 일은 결국.BaseWSGIServer.protocol_version = "HTTP/1.1"
.
저는 해결책을 시험해 보지 않았습니다.플라스크의 웹 서버는 개발용으로만 사용되어야 한다는 것을 알고 계실 겁니다.
언급URL : https://stackoverflow.com/questions/10523879/how-to-make-flask-keep-ajax-http-connection-alive
'source' 카테고리의 다른 글
Angularjs로 해시 후 URL 매개 변수를 구문 분석하려면 어떻게 해야 합니까? (0) | 2023.11.07 |
---|---|
Python에서 문자열이 비어 있지 않은 경우 여러 개의 문자열에 가입 (0) | 2023.11.07 |
각 12개의 'ng serve'는 거의 프로덕션 빌드와 같이 앱을 느리게 만듭니다. (0) | 2023.11.07 |
GAE에서 완벽하게 유효한 XML을 구문 분석할 때 "Prolog에서 컨텐츠가 허용되지 않습니다. (0) | 2023.11.07 |
@미디어 최소 너비 & 최대 너비 (0) | 2023.11.07 |