Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sanic验证Python AttributeError:&x27;请求';对象没有属性';原始参数';_Python_Python 3.x_Validation_Sanic - Fatal编程技术网

sanic验证Python AttributeError:&x27;请求';对象没有属性';原始参数';

sanic验证Python AttributeError:&x27;请求';对象没有属性';原始参数';,python,python-3.x,validation,sanic,Python,Python 3.x,Validation,Sanic,我试图在一个简单的sanic Web服务器中使用请求验证包sanic验证 使用sanic 20.3.0、sanic验证0.4.4和Python 3.8.3 from sanic import Sanic from sanic.response import json from sanic_validation import validate_args app = Sanic() query_schema = { 'name': {'type': 'string', 'required

我试图在一个简单的sanic Web服务器中使用请求验证包
sanic验证

使用sanic 20.3.0、sanic验证0.4.4和Python 3.8.3

from sanic import Sanic
from sanic.response import json
from sanic_validation import validate_args

app = Sanic()

query_schema = {
    'name': {'type': 'string', 'required': True}
}

@app.route('/query', methods=['GET'])
@validate_args(query_schema)
async def query(request):
    print(request.args)
    name = request.args['name'][0]

if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000)
但是,向
/query
端点发送GET请求会在Python终端中导致以下错误:

Traceback (most recent call last):
  File "/Users/n/opt/anaconda3/envs/test/lib/python3.8/site-packages/sanic/app.py", line 971, in handle_request
    response = handler(request, *args, **kwargs)
  File "/Users/n/opt/anaconda3/envs/test/lib/python3.8/site-packages/sanic_validation/decorators.py", line 59, in wrapper
    validation_passed = validator.validate(request.raw_args)
AttributeError: 'Request' object has no attribute 'raw_args'

为什么会发生此错误,我们如何修复此错误?谢谢

您似乎使用了旧版本的存储库。 正如您在异常中看到的:

第59行,在包装器中 AttributeError:“请求”对象没有属性“原始参数”

基本上,错误表示它不熟悉请求对象中的raw_args属性。 我检查了存储库中装饰器的代码,似乎他们将其改为query_args属性(也在第59行)


因此,也许您应该重新安装该软件包,或者您可以从GitHub复制代码并在本地发布。

您似乎使用了旧版本的存储库。 正如您在异常中看到的:

第59行,在包装器中 AttributeError:“请求”对象没有属性“原始参数”

基本上,错误表示它不熟悉请求对象中的raw_args属性。 我检查了存储库中装饰器的代码,似乎他们将其改为query_args属性(也在第59行)

因此,也许您应该重新安装该软件包,或者您可以从GitHub复制代码并在本地发布。

一些版本(我必须检查哪个版本),request_args被弃用,取而代之的是其他更明确和清晰的方法来获取args。看起来您正在使用的第三方软件包从未更新过。返回的一些版本(我必须检查哪个版本)中,request_args被弃用,取而代之的是其他更显式和清晰的方法来获取args。看起来您正在使用的第三方软件包从未更新。