解析来自web.py的响应

时间:2014-10-17 16:16:07

标签: python web.py

我正在尝试学习web.py以获取一个表单,我可以在其中获取响应并在响应函数中执行某些操作,不幸的是,返回的响应采用以下格式:

<Storage {'Domain required': u'wing.com', 'minutes needed': u'1', 'Submit': u''}>

其中,我可以写一些东西来解析,但肯定必须有一些方法来解析它。显然我错过了一些东西。我如何得到我可爱的回应,坐在变量或列表或字典?

提前致谢。

1 个答案:

答案 0 :(得分:2)

这是一个简单的示例,显示可以访问存储对象中访问该值的各种方式。

基本上,Storage对象可以被认为是一个奇特的词典。它允许您访问dict之类的值,但您也可以将值作为属性进行访问。

例外情况是变量名称中有空格,例如“需要域”。在这种情况下,您需要使用dict表示法进行访问。

此处还有一个指向Storage类实现的链接(主要内容是它是dict的子类):https://github.com/webpy/webpy/blob/master/web/utils.py#L52

属性访问用法示例:

print response['Domain required']
print response['minutes needed']
print response.Submit

用于循环的示例(就像dict一样):

for k, v in cgi_fields.items():
    print k, v

示例web.py类:

class SomePage(object):

    def GET(self):
        web.header("Content-Type", "text/html")
        return """
        <html><body>
            <form method="POST">
                <input type="input" name="Domain required" />
                <input type="input" name="example_field" />
                <input type="input" name="example_field_2" />
                <input type="submit" name="submit"/>
            </form>
        </body></html>
        """

    def POST(self):
        cgi_fields = web.input()
        return cgi_fields['Domain required'], cgi_fields.example_field, cgi_fields.get('example_field_2')