WSGI(python)如何从HTML表单中获取POST数据?

时间:2014-06-16 12:32:18

标签: python python-3.x mod-wsgi wsgi

这是“获取”/1.wsgi

的HTML表单
<form action="/1.wsgi" method="get">
<input type="text" name="one">
<input type="submit" value="Send">
</form>

这是我的1.wsgi脚本:

from cgi import parse_qs
import os

def application(environ, start_response):
    o = parse_qs(environ['QUERY_STRING'])
    oo = o.get('one', [''])[0]
    start_response('200 OK', [('content-type', 'text/html')])
    yield oo

效果非常好,但是我想使用POST方法而不是GET。我理解为html格式"get"必须更改为"post"但我必须在WSGI脚本中做些什么?

1 个答案:

答案 0 :(得分:2)

POST在请求正文中发送编码的表单数据;从CONTENT_LENGTH流中读取wsgi.input个字节:

try:
    request_body_size = int(environ.get('CONTENT_LENGTH', 0))
except (ValueError):
    request_body_size = 0

request_body = environ['wsgi.input'].read(request_body_size)
o = parse_qs(request_body)

假设您仍在使用默认表单编码application/x-www-form-urlencoded