2012-12-30 2 views
7

이것은 질문입니다 : gevent를 사용할 때 파이썬에서 POST 변수를 얻는 방법?gevent를 사용할 때 파이썬에서 POST 변수를 얻는 방법?

def application(env, start_response): 

을 그리고 이것은 다른 일부입니다 :

다음은 응용 프로그램에 전달됩니다

if __name__ == '__main__': 
print 'Serving on 8080...' 
WSGIServer(('', 8080), application).serve_forever() 

그러나 ENV 내 POST를 포함하지 않습니다!

저를 계몽하십시오 - 나의 오해는 어디에 있습니까?

감사합니다.

데프

callback(request): 
    post_data = request.input_buffer.read(-1) 

답변

2

당신은 요청 본문 environ['wsgi.input'].read()을 구문 분석해야합니다

+0

고맙습니다, @ 데니스! 실제로 여기 코드 스 니펫을 보았습니다.', ---- | #!/usr/bin/env python | | 병에서 가져 오기 병 | | app = Bottle() | @ app.route ('/') | def hello() : | "Hello World!"를 반환하십시오. | | gevent.pywsgi에서 가져 오기 WSGIServer | WSGIServer (('', 8000), app) .serve_forever()' 하지만 실제로 어떻게되는지 알지 못합니다. 그리고 어느 쪽이 더 빠릅니까? wsgi.input 또는 병? 감사합니다. –

+0

주요 제안이 작동합니다! 고마워요! –

1

여기에 요청 처리기의 예제 코드이다.

그러나 웹 프레임 워크를 사용하면 더 편리합니다. 대부분의 WSGI 지원 웹 프레임 워크는 gevent와 잘 작동합니다. 최소한의 것을 필요로한다면 bottle이 좋습니다.

+0

_request_가 메서드에 전달되는 방식은 무엇입니까? 내 경우 엔 env와 같지 않니? –