这是“获取”/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脚本中做些什么?
答案 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
。