gpt4 book ai didi

python - 如何使用 WSGIREF 捕获 POST

转载 作者:行者123 更新时间:2023-12-01 00:00:54 28 4
gpt4 key购买 nike

我正在尝试从简单的表单中捕获 POST 数据。

这是我第一次使用 WSGIREF,我似乎找不到正确的方法。

This is the form:
<form action="test" method="POST">
<input type="text" name="name">
<input type="submit"></form>

这个函数显然缺少正确的信息来捕获帖子:

def app(environ, start_response):
"""starts the response for the webserver"""
path = environ[ 'PATH_INFO']
method = environ['REQUEST_METHOD']
if method == 'POST':
if path.startswith('/test'):
start_response('200 OK',[('Content-type', 'text/html')])
return "POST info would go here %s" % post_info
else:
start_response('200 OK', [('Content-type', 'text/html')])
return form()

最佳答案

您应该读取来自服务器的响应。

来自nosklo's answer类似的问题:“PEP 333you must read environ['wsgi.input'] 。”

测试代码(改编自 this answer ):
警告:此代码仅用于演示目的。
警告:尽量避免硬编码路径或文件名。

def app(environ, start_response):
path = environ['PATH_INFO']
method = environ['REQUEST_METHOD']
if method == 'POST':
if path.startswith('/test'):
try:
request_body_size = int(environ['CONTENT_LENGTH'])
request_body = environ['wsgi.input'].read(request_body_size)
except (TypeError, ValueError):
request_body = "0"
try:
response_body = str(request_body)
except:
response_body = "error"
status = '200 OK'
headers = [('Content-type', 'text/plain')]
start_response(status, headers)
return [response_body]
else:
response_body = open('test.html').read()
status = '200 OK'
headers = [('Content-type', 'text/html'),
('Content-Length', str(len(response_body)))]
start_response(status, headers)
return [response_body]

关于python - 如何使用 WSGIREF 捕获 POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/775396/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com