2012-12-30 25 views
7

Đây là câu hỏi: Cách nhận các biến POST trong Python, khi sử dụng gevent?Làm cách nào để nhận các biến POST trong Python, khi sử dụng gevent?

Sau đây sẽ được chuyển cho các ứng dụng:

def application(env, start_response): 

Và đây là một phần khác:

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

Nhưng env không chứa POST của tôi!

Hãy khai sáng cho tôi - sự hiểu lầm của tôi nằm ở đâu?

Cảm ơn bạn!

Trả lời

2

Bạn cần phải phân tích cơ thể yêu cầu environ['wsgi.input'].read().

Tuy nhiên, bạn nên sử dụng khung web để thực hiện điều đó cho mình. Hầu hết các khung công tác web hỗ trợ WSGI hoạt động tốt với gevent. Nếu bạn cần một cái gì đó tối thiểu, bottle là tốt đẹp.

+0

Cảm ơn bạn, @Denis! Tôi thực sự đã xem một đoạn mã ở đây: ', ---- | #!/usr/bin/env python | | từ chai nhập khẩu Chai | | app = Bottle() | @ app.route ('/') | def hello(): | trả về "Hello World!" | | từ gevent.pywsgi nhập WSGIServer | WSGIServer (('', 8000), ứng dụng) .serve_forever() ' Nhưng tôi không thực sự có được nó. Và cách nào là nhanh hơn? wsgi.input hoặc chai? Cảm ơn bạn! –

+0

Đề xuất chính của bạn hoạt động !!! Cảm ơn nhiều! –

1

Dưới đây là đoạn mã nguồn của yêu cầu xử lý:

def

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

Cách _request_ được chuyển đến phương pháp? Nó sẽ không giống như env, trong trường hợp của tôi? –

Các vấn đề liên quan