代码之家  ›  专栏  ›  技术社区  ›  NeoVe

Flask-get()得到一个意外的关键字参数

  •  0
  • NeoVe  · 技术社区  · 7 年前

    我有以下方法:

    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>')
    

    访问url时 /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
    }
    

    谢谢

    0 回复  |  直到 7 年前
        1
  •  2
  •   DreamSeeker    7 年前

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

    推荐文章