首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用WSGIREF捕获POST

如何使用WSGIREF捕获POST
EN

Stack Overflow用户
提问于 2009-04-22 01:34:39
回答 1查看 3K关注 0票数 2

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

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

代码语言:javascript
复制
This is the form:
<form action="test" method="POST">
<input type="text" name="name">
<input type="submit"></form>

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

代码语言:javascript
复制
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()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-04-22 04:37:13

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

nosklo's answer到一个类似的问题:"PEP 333you must read environ['wsgi.input']。“

测试代码(改编自this answer):

注意:此代码仅用于演示目的。

警告:尽量避免硬编码路径或文件名。

代码语言:javascript
复制
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]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/775396

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档