python web2py 控制器 request.vars 没有属性(但实际上有)

python web2py controller request.vars doesn't have attribute (but actually does)

Python 2.7.12

web2py 2.14 稳定版

--调用javascript

开发的控制器

--调用控制器。由 Chrome inspect

捕获
GET "http://127.0.0.1:8000/default/FoldBe.html?operation=get&id=%23"

--控制器default.py

FoldBe():
    vars = dict(request.vars)
    print type(vars)
    #<type 'dict'>

    print vars
    #{'operation': 'get', 'id': '#'}

    for i in vars:
        print i
        #operation
        #id
        #print i.id

    print vars.id
    #ERRORS!!! stating.  What gives?
    #<type 'exceptions.AttributeError'> 'dict' object has no attribute 'id'

但是 'vars' 字典显然是一个 'dict' 并且显然有一个 'id' 属性 如果我注释掉 print vars.id 视图在浏览器中呈现并且没有如您预期的那样指示错误。

如果我允许print i.id执行错误是:

<type 'exceptions.AttributeError'> 'str' object has no attribute 'id'

什么给了?

我在这个控制器和其他控制器中有其他方法,这不是问题。

您应该按名称访问字典键,因此请尝试 vars['id'] 而不是 vars.id