为什么在使用 web2py 向外部 API 发出 post 请求时出现 "Instance has no attribute _caller" 错误
Why do I get "Instance has no attribute _caller" error while making post-request to external API using web2py
我正在尝试从我自己的 API 获取数据以填充我的 web2py 数据库。当我从我的操作系统默认 python 解释器 (2.7) 发出 post 请求时,这工作正常但是当我 运行 在 web2py-enviroment 中使用完全相同的代码时,我得到这个错误:
AttributeError: addinfourl instance has no attribute '_caller'
Web2Py 也 运行 在相同的 python 版本上。这是我位于 web2py project//models/x_fixtures:
中的测试代码
import json
import urllib2
if db(db.rftable.id > 0).count() == 0:
data = {
'ids': [12, 3, 4, 5, 6]
}
url = 'https://eo7sjt6hvj.execute-api.us-west-2.amazonaws.com/prod/tables/getall'
req = urllib2.Request(url, json.dumps(data), {'Content-Type': 'application/json'})
response = urllib2.urlopen(req)
编辑:
错误的完整回溯:
Traceback (most recent call last):
File "/home/toni/repos/python/web2py/fsttrpg/gluon/restricted.py", line 219, in restricted
exec(ccode, environment)
File "/home/toni/repos/python/web2py/fsttrpg/applications/fsttrpg/controllers/default.py", line 14, in <module>
AttributeError: addinfourl instance has no attribute '_caller'
我的default/controller:
# -*- coding: utf-8 -*-
### required - do no delete
def user(): return dict(form=auth())
def download(): return response.download(request,db)
def call(): return service()
### end requires
def index():
return dict()
def error():
return dict()
response
是 web2py 使用的全局变量之一;你的代码只是踩在它上面,这会破坏控制器。
我正在尝试从我自己的 API 获取数据以填充我的 web2py 数据库。当我从我的操作系统默认 python 解释器 (2.7) 发出 post 请求时,这工作正常但是当我 运行 在 web2py-enviroment 中使用完全相同的代码时,我得到这个错误:
AttributeError: addinfourl instance has no attribute '_caller'
Web2Py 也 运行 在相同的 python 版本上。这是我位于 web2py project//models/x_fixtures:
中的测试代码import json
import urllib2
if db(db.rftable.id > 0).count() == 0:
data = {
'ids': [12, 3, 4, 5, 6]
}
url = 'https://eo7sjt6hvj.execute-api.us-west-2.amazonaws.com/prod/tables/getall'
req = urllib2.Request(url, json.dumps(data), {'Content-Type': 'application/json'})
response = urllib2.urlopen(req)
编辑: 错误的完整回溯:
Traceback (most recent call last):
File "/home/toni/repos/python/web2py/fsttrpg/gluon/restricted.py", line 219, in restricted
exec(ccode, environment)
File "/home/toni/repos/python/web2py/fsttrpg/applications/fsttrpg/controllers/default.py", line 14, in <module>
AttributeError: addinfourl instance has no attribute '_caller'
我的default/controller:
# -*- coding: utf-8 -*-
### required - do no delete
def user(): return dict(form=auth())
def download(): return response.download(request,db)
def call(): return service()
### end requires
def index():
return dict()
def error():
return dict()
response
是 web2py 使用的全局变量之一;你的代码只是踩在它上面,这会破坏控制器。