Flask-get()获得了意外的关键字参数

时间:2018-11-28 17:34:53

标签: python json flask

我有以下方法:

def hardCoded(rng):
    numbers_to_add = list(range(rng))
    try:
        req = request.Request('http://127.0.0.1:5000/total'
            , data=bytes(json.dumps(numbers_to_add), 'utf_8')
            , headers={'Content-Type': 'application/json'}
            , method='POST')
        result = json.loads(request.urlopen(req).read(), encoding='utf_8')
        print(json.dumps(result, indent=4))
    except Exception as ex:
        print(ex)

class rangeNumbers(Resource):
    def get(self, rng):
        rng_num = rangeNumbers()
        rng_num.get(10000001)
        return {'data': directSum.hardCoded(rng).get(10000001)}

api.add_resource(rangeNumbers, '/range/<range>')

在访问网址/range/<range>时,它应该给我该范围10000001的结果

但是,当我尝试http://localhost:5000/range/range时,它会抛出以下信息:

Traceback (most recent call last):
File "/home/user/.virtualenvs/test_sum/lib/python3.6/site-packages/flask/app.py", line 1612, in full_dispatch_request
rv = self.dispatch_request()
File "/home/user/.virtualenvs/test_sum/lib/python3.6/site-packages/flask/app.py", line 1598, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/home/user/.virtualenvs/test_sum/lib/python3.6/site-packages/flask_restful/__init__.py", line 480, in wrapper
resp = resource(*args, **kwargs)
File "/home/user/.virtualenvs/test_sum/lib/python3.6/site-packages/flask/views.py", line 84, in view
return self.dispatch_request(*args, **kwargs)
File "/home/user/.virtualenvs/test_sum/lib/python3.6/site-packages/flask_restful/__init__.py", line 595, in dispatch_request
resp = meth(*args, **kwargs)
TypeError: get() got an unexpected keyword argument 'range'

也许我应该使用/range/<10000001>作为对此的网址查询?

结果应显示以下内容:

`{
    "total": 50000005000000
}

` 谢谢

1 个答案:

答案 0 :(得分:1)

get(self,rng)函数的参数rng应该是“范围”。您遇到了问题,然后将函数参数名称更改为尖括号(<>)之间的值。你可以试试。